Làm thế nào để có được tên get_post_types hiện tại?


12

Làm cách nào tôi có thể nhận được tên loại bài đăng tùy chỉnh hiện tại và lặp lại nó trên một trang?

Câu trả lời:


26

Bạn sẽ cần đối tượng bài viết bằng cách nào đó, hoặc, thay vào đó, đối tượng được truy vấn trên kho lưu trữ loại bài đăng. Trên một trang số ít bạn có thể làm:

$post = get_queried_object();
$postType = get_post_type_object(get_post_type($post));
if ($postType) {
    echo esc_html($postType->labels->singular_name);
}

Hoặc trong vòng lặp:

$postType = get_post_type_object(get_post_type());
if ($postType) {
    echo esc_html($postType->labels->singular_name);
}

Trong lưu trữ loại bài:

$postType = get_queried_object();
echo esc_html($postType->labels->singular_name);

Tất cả trong số này sẽ cung cấp cho bạn tên duy nhất của loại bài đã được đăng ký tại register_post_type's labelsquan trọng.


Bạn có thể giúp tôi ở đây Tôi sử dụng mã sau đây ngay bây giờ: snippi.com/s/wookr64 Với mã này tôi chỉ muốn gọi các loại bưu điện hiện tại trên trang. Bây giờ nó không hoạt động chính xác. Tôi sai cái gì
Casper

2
@Casper Tôi nghĩ bạn sẽ cần phải làm gì, đi và ngồi xuống, và xây dựng lại câu hỏi trước đó của bạn. Nó vẫn hoàn toàn không rõ ràng những gì bạn muốn. Tại sao câu trả lời này trên SO không hoạt động. Giải thích với các ví dụ và tên mẫu chính xác những gì bạn muốn. Cảm ơn bạn
Pieter Goosen

3

Để có được tên của loại bài đăng hiện tại, hãy sử dụng đoạn mã sau trong vòng lặp.

$post_type = get_post_type( get_the_ID() );
echo '<p>' . $post_type . '</p>';

hoặc hiển thị tên loại bài đăng bằng chức năng printf.

printf( __( 'The post type is: %s', 'textdomain' ), get_post_type( get_the_ID() ) );
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.