我一直在尝试在动态页面中更改标题,但没有任何运气。
我所做的是创建了两个页面模板,从中可以从外部数据库加载项目(场合)。在单页模板中,我加载单页场景:
<?php include \'Occasions-files/single.php\';?>
我加载的第二个页面模板概述了各种场合:
<?php include \'Occasions-files/file.php\';?>
现在,标题是SEO插件的默认标题。我已经尝试了一次搜索引擎优化(All-in-One SEO)和一次搜索引擎优化(Yoast SEO),但似乎无法覆盖标题。我想把单曲改成单曲。php进入场合名称,但将所有其他页面留给SEO插件。
我对此没有太多经验,也不知道从哪里开始。出于测试目的,我尝试将test手动放在get\\u标题之前,然后它会显示手动添加的标题,但我的标题被弄乱了。当我将标题放在get\\u标题之后时,它会加载标题ok,但标题不会显示,仍然是默认的
<title>test</title>
<?php get_header(); ?>
此外,我尝试添加一个过滤器(到functions.php),但这也没有任何结果,或者我不知道如何插入它。。?
function custom_title_function($custom_title) {
$custom_title[\'title\'] = "Test Title";
return $custom_title; }
add_filter( \'document_title_parts\', \'custom_title_function\' );
有人知道如何解决这个问题吗?提前感谢!
SO网友:James
为了确保你的<head>
区域(大概在header.php中)是这样的?
<title><?php wp_title(); ?></title>
Yoast必须这样才能使用它,并且能够覆盖标题。
不管怎样,如果你把这个加到你的单曲里。php(或至少在此之前get_header()
为该页面运行)您应该能够修改页面标题:
function custom_page_title( $title ){
$return = $title;
// You can check what the current post is via $wp_query->post
global $wp_query;
if( isset($wp_query->post) ){
$id = $wp_query->post->ID;
$post_title = $wp_query->post->post_title;
// etc
$return = $post_title;
}
// Or just outright change the title
$return = \'test\';
return $return;
}
add_filter(\'wp_title\', \'custom_page_title\', 20);
这里需要注意的另一点是,如果您使用的是Yoast,则必须确保此函数在Yoast修改标题后运行,否则Yoast将覆盖您所做的任何更改。这就是
20
作为中的第三个参数输入
add_filter()
. 我认为Yoast在15时运行其过滤器,因此在20时运行您的过滤器(或任何高于15的数字)将确保您的过滤器在Yoast的过滤器之后运行。