【问题标题】:how to display custom post type post's title on page如何在页面上显示自定义帖子类型帖子的标题
【发布时间】:2013-08-10 21:06:15
【问题描述】:

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

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

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    您的帖子类型很可能会显示在其自己的 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.
    

    【讨论】:

      【解决方案2】:

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

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

      2. 如果is_page() 的计算结果不等于true,那么在任何情况下都不会执行任何操作。

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

      【讨论】:

      • 为什么这被否决了?他是对的。特别是关于错误部分。
      【解决方案3】:

      试试这个:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-29
        • 2022-07-20
        • 2019-05-08
        相关资源
        最近更新 更多