如何自定义自定义php文件的页面标题

时间:2017-08-22 作者:Will

我正在创建一个自定义php/js页面,在第二个页面上查询和显示来自单独的非wordpress DB的结果。页眉和页脚将与我的主题相同,因此我调用了主题的页脚和页眉,但我还没有弄清楚为什么我自定义页面标题的钩子不起作用,并询问使用哪个钩子来显示我指定的标题。

除了主题的页眉和页脚,我不需要调用wordpress中的任何内容(我不使用页面模板的原因之一)。

我想是的

require(\'../wp-blog-header.php\');
get_header();
add_filter( \'wp_title\', \'mycustom_title\', 4);

function mycustom_title($teetitle) {
    $teetitle = \'My Custom Title Here\';
    return $teetitle;
}
如上所述here(my full php file is here)

我可以使用“get\\u header”和我的头调用头。我的主题中的php文件调用wp\\u head。

在这一点上,我被难住了,因为我的wp\\u标题挂钩没有启动,并且遵循了404通用模板的默认逻辑,即声明“找不到页面”。php

我想我可以在php文件中调用get\\u header后立即发出一个钩子来覆盖它;https://stackoverflow.com/questions/9926292/set-custom-page-title-with-hook 但这是行不通的。

当我稍后在同一个文件的正文中发布$echo wp\\u title时,wp\\u title会给我修改后的标题。

我还尝试了一些默认的不同主题(2013、2012等),页面标题不正确,因此我认为我缺少一些基本的东西,或者我没有调用正确的挂钩。我也试着把我的钩子放在我的主题函数中。php和具有相同的结果。我也尝试过使用6位整数的优先级,但仍然得到了相同的结果。

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

我最终还是制作了一个页面模板,并在发表文章时插入了页面标题。

SO网友:Anton Lukin

这样不行。您应该加载所有wordpress环境,而不是template_includetemplate_redirect 挂钩使用您自己的模板和标题。

例如:

<?php
    require(\'../wp-blog-header.php\');

    add_action(\'template_include\', function() {
        if($some_condition === true) {
            $new_template = locate_template( array( \'portfolio-page-template.php\' ) );

            return $new_template;
        }
    });

    add_filter(\'wp_title\', function($title) {
        return "new title";
    })

结束

相关推荐