Hapus "Kategori:", "Tandai:", "Penulis:" dari the_archive_title


50

Saya memiliki kode berikut di archive.php tema saya:

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

Ini memberi saya judul seperti "Kategori: Rusia", "Tag: Amerika", "Penulis: John".

Saya ingin menghapus bagian "Kategori:", "Tag:" dan "Penulis:" dan cukup tampilkan kategori, tag, dan nama penulis.

Adakah yang tahu bagaimana mencapainya?

Terima kasih.

Jawaban:


80

Anda dapat memperluas get_the_archive_titlefilter yang telah saya sebutkan dalam jawaban ini

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
Itu bekerja! Terima kasih, Pieter! Jika pengguna yang kurang paham teknologi mencari solusi yang sama: Anda menambahkan kode Pieter ke file functions.php Anda dan hanya itu!
Nick

Lakukan ini dalam tema anak sehingga perubahan Anda tidak akan hilang saat pembaruan tema.
Jürgen Paul

1
Ini berfungsi cukup baik, tetapi ada kasus untuk arsip dan taksonomi khusus.
JacobTheDev

Lihat solusi Ben Gillbanks untuk semua arsip jenis pos dan taksonomi.
Dan Knauss

25

Gunakan fungsi single_term_title()


Anda dapat melakukan banyak hal di WP, tetapi saya selalu memilih solusi paling sederhana. Terima kasih Timo.
f055

1
Yah itu tidak berfungsi untuk semua arsip yang bukan istilah. Jadi menurut saya bukan solusi yang sangat bagus.
GDY

9

Untuk judul CPT Tanpa kata: 'Arsip':

Jika Anda membuat templat arsip khusus untuk CPT, dan ingin menampilkan hanya judul CPT tanpa kata tambahan seperti "Arsip", gunakan fungsi berikut sebagai gantinya:

echo post_type_archive_title( '', false );

Dari developer.wordpress.org


5

Saya merasa ini lebih dari menyederhanakan hal-hal, tapi ini yang saya lakukan ...

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

1
ini tidak akan berfungsi untuk situs web non-Inggris.
Maxwell sc

2

echo '<h1 class="page-title">' . single_cat_title( '', false ) . '</h1>'; di taxonomy-category.php di luar tema publik.


1

Saya akan menggunakan filter dan meletakkannya di file functions.php

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

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

0

Dengan asumsi format selalu:, Prefix: Archive Namekita bisa menemukan titik dua pertama diikuti oleh spasi, dan hanya menampilkan konten setelah ini, menggunakan get_the_archive_title () dengan fungsi substr () dan 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

Anda dapat menggunakan yang berikut untuk hanya memiliki judul tanpa awalan

single_cat_title();

2
Meskipun benar, ini telah disarankan sebelumnya dalam jawaban lain.
Nicolai

-4

direktori: wp-includes

mengajukan: general-template.php

temukan fungsi: get_the_archive_title() ubah:

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>' );
    }

untuk:

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
Err, apakah Anda benar-benar menyarankan meretas inti di sini?
cjbj

3
Ini ide yang sangat, sangat buruk. Anda tidak dapat memperbarui sekarang tanpa membuat cabang terpisah.
fuxia

Sory jika saya melanggar peran saya memberikan kata untuk itu, tapi ini hanyalah solusi tidak berbahaya. Jadi, Anda mengatakan bahwa saya meretas situs saya sendiri atau saya tidak dapat membagikan kode dari file inti?
Dragan Nikolic

Yah, ini situs web Anda dan Anda dapat mengedit apa pun yang Anda inginkan - bahkan file inti. Namun, web akan rusak jika Anda memperbarui Wordpress Anda ...
Raccoon
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.