如何在页面上显示自定义帖子类型的帖子标题

时间:2013-08-10 21:06:16

标签: php wordpress

我正在尝试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');

以上代码在查看页面时不显示电影后期类型的标题。任何帮助都是高度关注的。

3 个答案:

答案 0 :(得分: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.

答案 1 :(得分:1)

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

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

  2. 如果is_page()未评估为true,则无论如何都不会做任何事情。

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

答案 2 :(得分:0)

尝试这个:

<?php 
    $post_type = get_post_type_object( get_post_type($post) ); 
    echo $post_type->label ; 
?>