如何在DOCUMENT_TITLE_PARTS中包含QUERY_vars值?

时间:2019-01-27 作者:Robert Andrews

我有一个页面模板,在单个页面上使用,它采用URL字符串参数,如下所示。。。

http://www.example.com/mypage?tags=Publishing

像这样促进。。。

// Inherit the meta target
global $wp_query;
if (isset($wp_query->query_vars[\'tags\'])) {
  $tax_meta_key   = \'tags\';
  $tax_meta_value = $wp_query->query_vars[\'tags\'];
}
它起作用了。

但现在我还想根据相同的查询输入动态更改页面的标题。

我读过一些标题过滤方法。document_title_parts 适合,因为它只更改标题部分,并保留站点名称和公式。

但是,以下操作不起作用:;它只会产生一个空白标题部分(不是站点名称部分)。。。

<?php

// Inherit the meta target
global $wp_query;
if (isset($wp_query->query_vars[\'tags\'])) {
  $tax_meta_key   = \'tags\';
  $tax_meta_value = $wp_query->query_vars[\'tags\'];
}

// Filter to customise page title from just "Organisation Type"
function custom_title($title_parts) {
    $title_parts[\'title\'] = $tax_meta_value;
    return $title_parts;
}
add_filter( \'document_title_parts\', \'custom_title\' );

get_header();

?>
我怀疑这可能是由于query_vars 和adocument_title_parts 执行(?)-即:VAR是否在get_header?

我可以在我的页面标题中包含var吗?

1 个回复
SO网友:obiPlabon

如果您的查询变量tags 如果注册正确,那么下面的代码片段肯定会工作,我已经测试过了。这是您的代码段的修改版本。请确保将代码添加到functions.php 文件

function prefix_custom_title($title_parts) {
    global $wp_query;
    if (isset($wp_query->query_vars[\'tags\'])) {
        $title_parts[\'title\'] = $wp_query->query_vars[\'tags\'];
    }
    return $title_parts;
}
add_filter( \'document_title_parts\', \'prefix_custom_title\' );

相关推荐

在“parse_Query”操作中触发“Headers Always Sent”错误

我已将此代码注册到“parse\\u query”操作,该操作尝试根据API资产的可用性触发404。我的实现基于this answer 另一个问题。public function throw404($query) { if ($this->avorgApi->getPresentation($query->get(\"presentation_id\"))) return; $query->set_404(); $t