如何修改短代码中特定页面的页面标题?
以下内容将更改标题,但会针对每个页面执行。我需要更多地控制它的执行位置。
function assignPageTitle(){
return "Title goes here";
}
add_filter('wp_title', 'assignPageTitle');
有没有办法在短代码函数中调用上面的代码?我知道如何使用do_shortcode(),但上面是一个过滤器。
我的目标是根据网址参数修改网页标题。这仅适用于特定页面。
答案 0 :(得分:2)
在WordPress 2.5中引入的是Shortcode API,一套简单的 用于创建用于帖子内容的宏代码的函数。
这表明您无法使用短代码控制页面标题,因为短代码在帖子内容中运行,此时标题标记已经呈现,然后为时已晚。
你想要做什么?如果您想要这样做,可以使用Yoast SEO Plugin在每个帖子中设置帖子和页面标题?
您可以根据您的网址参数创建自定义插件,如下所示:
function assignPageTitle(){
if( $_GET['query'] == 'something' ) { return 'something'; }
elseif( $_GET['query'] == 'something-else' ) { return 'something-else'; }
else { return "Default Title"; }
}
add_filter('wp_title', 'assignPageTitle');
答案 1 :(得分:2)
尽管WordPress短代码并非旨在做到这一点,但可以做到这一点。问题是在发送头部分之后处理了短代码,因此解决方案是在发送头部分之前处理短代码。
(*jvm)->DestroyJavaVM(jvm);
关键点是当完成过滤器“ pre_get_document_title”时,将设置全局$ post对象,并且$ post-> post_content可用。因此,您现在可以找到此帖子的简码。
通常调用简码时,它会用空字符串替换自身,因此对post_content没有影响。但是,当从过滤器“ pre_get_document_title”调用时,它可以根据其参数$ atts和全局$ post计算标题。