Xóa Danh mục Thể loại: Tiếng Việt, Thẻ Tag: Tấn, Người viết Tác giả: Người từ the_archive_title


50

Tôi có đoạn mã sau trong archive.php của chủ đề:

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

Điều này mang lại cho tôi các tiêu đề như "Thể loại: Nga", "Tag: America", "Tác giả: John".

Tôi muốn xóa phần "Danh mục:", "Thẻ:" và "Tác giả:" và chỉ hiển thị danh mục, thẻ và tên tác giả.

Có ai biết làm thế nào để thực hiện điều này?

Cảm ơn bạn.

Câu trả lời:


80

Bạn có thể mở rộng get_the_archive_titlebộ lọc mà tôi đã đề cập trong câu trả lời này

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
Đó là công việc! Cảm ơn, anh bạn! Trong trường hợp những người dùng ít hiểu biết về công nghệ đang tìm kiếm cùng một giải pháp: Bạn thêm mã của Peter vào tệp tin.php của bạn và đó là nó!
Nick

Làm điều này trong một chủ đề con để những thay đổi của bạn sẽ không bị mất khi cập nhật chủ đề.
Jürgen Paul

1
Điều này hoạt động khá tốt, nhưng nó thiếu các trường hợp lưu trữ và phân loại tùy chỉnh.
JacobTheDev

Xem giải pháp của Ben Gillbanks cho tất cả các tài liệu lưu trữ và phân loại bài.
Dan Knauss

25

Sử dụng chức năng single_term_title()


Bạn có thể thực hiện nhiều cách trong WP, nhưng tôi luôn chọn các giải pháp đơn giản nhất. Cảm ơn Timo.
f055

1
Vâng, điều đó không hiệu quả đối với tất cả các tài liệu lưu trữ không có điều khoản. Vì vậy, theo tôi không phải là một giải pháp rất tốt.
GDY

9

Đối với tiêu đề CPT Không có từ: 'Lưu trữ':

Nếu bạn đang xây dựng mẫu lưu trữ tùy chỉnh cho CPT và muốn chỉ xuất ra tiêu đề của CPT mà không có thêm từ nào như Lưu trữ Lưu trữ, hãy sử dụng chức năng sau:

echo post_type_archive_title( '', false );

Từ nhà phát triển.wordpress.org


5

Tôi cảm thấy như điều này là quá đơn giản hóa mọi thứ, nhưng đây là những gì tôi đã làm ...

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

1
điều này sẽ không làm việc cho một trang web không phải tiếng Anh.
Maxwell sc

2

echo '<h1 class="page-title">' . single_cat_title( '', false ) . '</h1>'; trong taxonomy-category.php ngoài công chúng của chủ đề.


1

Tôi sẽ sử dụng một bộ lọc và đặt nó trong một tệp tin.php

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

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

0

Giả định dạng luôn là: Prefix: Archive Name, chúng tôi chỉ có thể tìm thấy đại tràng đầu tiên theo sau là một không gian, và chỉ hiển thị các nội dung sau này, sử dụng get_the_archive_title () với PHP substr ()() strpos chức năng.

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

-2

Bạn có thể sử dụng thông tin sau để chỉ có tiêu đề mà không có tiền tố

single_cat_title();

2
Trong khi sự thật, điều này đã được đề xuất trước đây trong các câu trả lời khác.
Nicolai

-4

danh mục: wp-includes

tập tin: general-template.php

tìm chức năng: get_the_archive_title() thay đổi:

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

đến:

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, bạn có thực sự đề nghị hack cốt lõi ở đây?
cjbj

3
Đây là một ý tưởng rất, rất xấu. Bạn không thể cập nhật ngay mà không tạo một nhánh riêng.
fuxia

Sory nếu tôi phá vỡ vai trò tôi sẽ cho một từ cho điều đó, nhưng đây chỉ là một giải pháp không có gì độc hại. Vì vậy, bạn nói rằng tôi hack trang web của riêng tôi hoặc tôi không thể chia sẻ mã từ các tập tin cốt lõi?
Dragan Nikolic

Chà, đó là trang web của bạn và bạn có thể chỉnh sửa bất cứ thứ gì bạn muốn - ngay cả các tệp cốt lõi. Tuy nhiên, web sẽ bị hỏng nếu bạn cập nhật Wordpress của mình ...
Raccoon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.