0

我正在wp上尝试一些东西。我想在页面帖子类型上显示自定义帖子类型标题。这是我的代码。

function get_post_type_title(){

        if('movie_ronny' == get_post_type()){ // if post type is movie_ronny, get post title

            $movie = get_the_title(); //hold the post title in $movie.

    }

    if(is_page() ){ // if viewing page, display movie_ronny title

    echo $movie;

    }       

}
add_filter('wp_head','get_post_type_title');

上面的代码在查看页面时不显示电影帖子类型的标题。任何帮助都非常受欢迎。

4

3 回答 3

2

您的帖子类型很可能会显示在其自己的 single-movie_ronny 模板上。在这种情况下,您当然不需要条件 -

if('movie_ronny' == get_post_type()){...}

这个问题有点奇怪的另一个原因是你的循环查询必须在它的参数中定义它正在查询什么类型的帖子、页面或自定义帖子类型。因此,您还将知道您正在处理哪种帖子类型,并且不需要第一个条件。

无论您的情况如何:

if(is_page() ){ // will only return true for pages. not posts or CPT's

还,

get_the_title($id); // needs a post ID outside of the loop.
于 2013-08-10T22:22:45.980 回答
1

好吧,这个函数有两种失败的方式(即什么都不做):

  1. 如果第一个if块被忽略,那么第二个if块将不会做任何事情(我相信它实际上会显示一个通知,因为$movie不会被定义)。

  2. 如果is_page()不评估,true那么在任何情况下都不会做任何事情。

如果您对编程有所了解,那么这应该是显而易见的。所以,要么你不知道你在做什么,要么我在这里误解了一些东西。

于 2013-08-10T21:31:38.053 回答
1

试试这个:

<?php 
    $post_type = get_post_type_object( get_post_type($post) ); 
    echo $post_type->label ; 
?>
于 2019-12-13T12:31:24.970 回答