ลบ“ หมวดหมู่:”,“ แท็ก:”,“ ผู้แต่ง:” จาก the_archive_title


50

ฉันมีรหัสต่อไปนี้ใน archive.php ของชุดรูปแบบของฉัน:

<?php the_archive_title( '<h1 class="page-title">', '</h1>' ); ?>

สิ่งนี้ทำให้ฉันชื่อเช่น "หมวดหมู่: รัสเซีย", "แท็ก: อเมริกา", "ผู้แต่ง: จอห์น"

ฉันต้องการลบส่วน "หมวดหมู่:", "แท็ก:" และ "ผู้แต่ง:" และเพียงแสดงหมวดหมู่แท็กและชื่อผู้แต่ง

ไม่มีใครรู้วิธีการทำเช่นนี้?

ขอขอบคุณ.

คำตอบ:


79

คุณสามารถขยายget_the_archive_titleตัวกรองที่ฉันได้กล่าวถึงในคำตอบนี้

add_filter( 'get_the_archive_title', function ($title) {    
    if ( is_category() ) {    
            $title = single_cat_title( '', false );    
        } elseif ( is_tag() ) {    
            $title = single_tag_title( '', false );    
        } elseif ( is_author() ) {    
            $title = '<span class="vcard">' . get_the_author() . '</span>' ;    
        } elseif ( is_tax() ) { //for custom post types
            $title = sprintf( __( '%1$s' ), single_term_title( '', false ) );
        }    
    return $title;    
});

2
ได้ผลจริง! ขอบคุณปีเตอร์! ในกรณีที่ผู้ใช้ที่มีเทคโนโลยีน้อยกำลังมองหาโซลูชันเดียวกัน: คุณเพิ่มโค้ดของ Pieter ลงในไฟล์ functions.php ของคุณและนั่นแหละ!
Nick

ทำสิ่งนี้ในธีมลูกเพื่อให้การเปลี่ยนแปลงของคุณไม่สูญหายไปกับการอัพเดตธีม
Jürgen Paul

1
วิธีนี้ใช้งานได้ดี แต่กรณีที่ขาดหายไปสำหรับเอกสารสำคัญและ taxonomies แบบกำหนดเอง
JacobTheDev

ดูโซลูชันของ Ben Gillbanks สำหรับคลังเก็บโพสต์และ taxonomies ทั้งหมด
Dan Knauss

25

ใช้ฟังก์ชั่น single_term_title()


คุณสามารถทำสิ่งต่างๆได้หลายอย่างใน WP แต่ฉันเลือกใช้วิธีที่ง่ายที่สุดเสมอ ขอบคุณติโม
f055

1
นั่นไม่ได้ผลสำหรับคลังทั้งหมดที่ไม่ใช่คำศัพท์ ดังนั้นในความคิดของฉันไม่ใช่ทางออกที่ดีมาก
GDY

9

สำหรับชื่อ CPT ที่ไม่มีคำ: 'เก็บถาวร':

หากคุณกำลังสร้างเทมเพลตเก็บถาวรที่กำหนดเองสำหรับ CPT และต้องการส่งออกเฉพาะชื่อของ CPT ที่ไม่มีคำพิเศษเช่น“ เก็บถาวร” ใช้ฟังก์ชันต่อไปนี้แทน:

echo post_type_archive_title( '', false );

จากdeveloper.wordpress.org


5

ฉันรู้สึกว่านี่เป็นเรื่องง่าย ๆ แต่นี่คือสิ่งที่ฉันทำ ...

<h1><?php echo str_replace("Archives: ", "", get_the_archive_title()); ?></h1>

1
สิ่งนี้ไม่สามารถใช้ได้กับเว็บไซต์ที่ไม่ใช่ภาษาอังกฤษ
Maxwell sc

2

echo '<h1 class="page-title">' . single_cat_title( '', false ) . '</h1>'; ใน taxonomy-category.php ภายนอกสาธารณะของธีม


1

ฉันจะใช้ตัวกรองและวางไว้ในไฟล์ functions.php

add_filter( 'get_the_archive_title', 'replaceCategoryName'); 
   function replaceCategoryName ($title) {

   $title =  single_cat_title( '', false );
   return $title; 
}

0

สมมติว่ารูปแบบอยู่เสมอ: Prefix: Archive Nameเราสามารถหาโคลอนแรกตามด้วยช่องว่างและแสดงเนื้อหาหลังจากนี้เท่านั้นโดยใช้get_the_archive_title ()ด้วยฟังก์ชั่นsubstr ()และstrpos ()ของ PHP

<?php // Only show the portion of the string following the first ": "
  echo substr(get_the_archive_title(), strpos(get_the_archive_title(), ': ') + 2);
?>

-2

คุณสามารถใช้สิ่งต่อไปนี้เพื่อให้มีเพียงชื่อเท่านั้นโดยไม่มีคำนำหน้า

single_cat_title();

2
ในขณะที่ความจริงนี้ได้รับการแนะนำมาก่อนในคำตอบอื่น ๆ
Nicolai

-4

ไดเรกทอรี: wp-includes

ไฟล์: general-template.php

ค้นหาฟังก์ชั่น: get_the_archive_title() การเปลี่ยนแปลง:

if ( is_category() ) {
        $title = sprintf( __( 'Category: %s' ), single_cat_title( '', false ) );
    } elseif ( is_tag() ) {
        $title = sprintf( __( 'Tag: %s' ), single_tag_title( '', false ) );
    } elseif ( is_author() ) {
        $title = sprintf( __( 'Autor: %s' ), '<span class="vcard">' . get_the_author() . '</span>' );
    }

ไปที่:

if ( is_category() ) {
        $title = sprintf( __( '%s' ), single_cat_title( '', false ) );
    } elseif ( is_tag() ) {
        $title = sprintf( __( '%s' ), single_tag_title( '', false ) );
    } elseif ( is_author() ) {
        $title = sprintf( __( '%s' ), '<span class="vcard">' . get_the_author() . '</span>' );
    }//if you want to remove or just change text if you need to

3
เอ่อคุณแนะนำแฮ็คหลักที่นี่จริงเหรอ?
cjbj

3
นี่เป็นความคิดที่แย่มาก ๆ คุณไม่สามารถอัปเดตได้ในขณะนี้โดยไม่สร้างสาขาแยกต่างหาก
fuxia

Sory ถ้าฉันทำผิดบทบาทฉันจะให้คำตอบนั้น แต่นี่เป็นเพียงวิธีการแก้ปัญหาอื่นที่ไม่มีอันตราย ดังนั้นคุณบอกว่าฉันแฮ็คเว็บไซต์ของฉันเองหรือฉันไม่สามารถแบ่งปันรหัสจากไฟล์หลักได้?
Dragan Nikolic

เป็นเว็บไซต์ของคุณและคุณสามารถแก้ไขสิ่งที่คุณต้องการ - แม้แต่ไฟล์หลัก อย่างไรก็ตามเว็บจะพังหากคุณอัปเดต Wordpress ของคุณ ...
Raccoon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.