如何在帖子标题中使用自定义字段?

时间:2016-04-21 作者:user92726

我的某些帖子会有自定义字段release_author 如果该字段存在,我想在标题中显示该字段。php标题(不在h1 该职位本身。

现在,这是从标题显示我的标题的PHP。php文件:

<title><?php wp_title( \'|\', true, \'right\' ); ?></title>
所以现在它将显示:

Random Title Name
这就是我希望它显示的内容:

Random Title Name (Author Name)
有人知道怎么做吗?我发现了大量与之类似的教程,但它们都是用于修改页面本身的标题,而不是更改标题中显示的内容。。。

1 个回复
SO网友:Tim Malone

您需要的是允许您修改页面标题的过滤器。自从Wordpress 4.4以来,有一种新的方法可以做到这一点,所以我将重点介绍一下。如果您碰巧使用的是4.4之前的版本,并且无法更新,那么另一种选择是wp_title 过滤器(不要与wp_title() 函数),如果您愿意,我可以详细说明。

因此,您要查找的过滤器(适用于WP 4.4+)被称为document_title_parts.

要使用此功能,请打开主题的functions.php 归档并放置在以下位置:

add_filter("document_title_parts", "wpse_224340_document_title");

function wpse_224340_document_title($title){
    global $post; // make sure the post object is available to us
    if(is_singular()){ // check we\'re on a single post
        $release_author = get_post_meta(get_the_ID(), "release_author", true);
        if($release_author != ""){ $title["title"].= " (" . $release_author. ")"; }
    }
    return $title;
}
您还需要删除<title></title> 在中找到的标记header.php, 并将以下代码添加到functions.php 以及:

add_filter("after_setup_theme", function(){ add_theme_support("title-tag"); });
这告诉Wordpress添加自己的<title> 标记,然后使用document_title_parts 上面的过滤器。

EDIT: 由于这是Wordpress的一个全新更改,如果您对其背后的背景感兴趣,或者您想知道为什么最好不要使用它wp_title 你还能看到this blog post.

相关推荐

如何让`wp-list-table`显示我在Custom-Post中的`Custom-Fields`

一切都好吗<我需要wp-list-table 也要显示custom-fields 在每个custom-post 我有,但我不知道如何做到这一点,在这幅图中,它显示了带有字段的表格:Title, Author and Publication Date: 我想要的是能够选择custom-fields 将出现,例如以下示例Title, Carta, Naipe, Author, and Date of Publication: