将元标记添加到自定义标头

时间:2021-02-27 作者:Nick

我正在尝试创建php代码来更改Wordpress标题。借助于https://wordpress.stackexchange.com/a/134524, 我有以下几点:

add_filter( \'wp_headers\', \'add_meta_to_header\' );
function add_meta_to_header($headers) { 
    if ( is_page(\'Page title\') ) {
        $headers[\'X-UA-Compatible\'] = \'IE=edge,chrome=1\';
    }
    return $headers;
}
我的问题是,我不知道在标题中添加多个元标记的语法应该是什么。例如,我想补充:<meta name=\'twitter:card\' content=\'summary_large_image\'/>. 我应该如何在if语句中包含此内容?

那么应该是这样的:headers[\'meta name, content\'] = \'twitter:card, summary_large_image\';?

1 个回复
最合适的回答,由SO网友:GreatBlakes 整理而成

HTTP头与HTML头不同。您想要添加的元标记(用于推特卡)实际上是一个元标记,它位于HTML头部。

因此,要实现您希望从PHP中实现的目标;“功能”;文件,您希望连接到wp_head 相反像这样:

add_action(\'wp_head\', function(){
    echo \'<meta name="twitter:card" content="summary_large_image" />\';
});
您可以在单个挂钩上添加所需的任意多个元标记(因为我看到您为Twitter声明了较大的摘要大小,您可能还想告诉它要使用哪个图像。您可以这样做:

add_action(\'wp_head\', function(){
    echo \'<meta name="twitter:card" content="summary_large_image" />\';
    echo \'<meta name="twitter:image" content="\' . get_the_post_thumbnail_url() . \'" />\'; //The post thumbnail is the featured image– you could change this to a different image if desired
    echo \'<meta name="twitter:creator" content="@yourtwitterusername" />\'; //You can add the Twitter username of the author here (by hardcoding or even pull from the author\'s profile)
});
想想WordPress操作(或“hooks”)正如事情发生时所指出的那样,上面的代码只是告诉WordPress:“如果你不知道,你会怎么做?”;嘿,当您触发wp\\u head操作时,请同时运行此代码;。

Here is a list of all (or most) of the WP actions. 我一直在使用这个列表,所以值得一个书签。

记住filters 你需要return, 但是,通过行动,你只需在那一点上做你想做的事(这就是为什么我们只是在这里附和)。

旁注:我知道is_page() 函数接受字符串,但在此处使用页面标题可能很脆弱,以防标题发生更改。考虑在那里使用post ID–就像is_page(123)

希望有帮助!