更改/设置插件内调用的页面的页面标题和元标记

时间:2019-08-03 作者:Dexter

我正在使用一组查询变量和重写规则来加载新页面。我对页面的最后一次调用如下所示:

add_filter( \'template_include\', \'se343855_template_include\', 50 );
function se343855_template_include( $template )
{
    $sign1 = get_query_var(\'sign1\', false);
    $sign2 = get_query_var(\'sign2\', false);

    if ( $sign1 !== false || $sign2 !== false ) {
        // if this code is located in plugin file
        $template =  plugin_dir_path(__FILE__) . \'/pages/form.php\';
    }
    return $template;
}
这是可行的,也是形式。php页面与此类似:

<?php include_once(dirname( __FILE__ ).\'/../shortcodes/functions.php\'); ?>
<?php get_header(); ?>
    <div id="primary" class="content-area grid-parent mobile-grid-100 grid-75 tablet-grid-75">
        <main id="main" class="site-main">
            <div>Page</div>
        </main>
    </div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
我需要设置页面标题(即标题与标题之间的内容)以及表单中的一些元标记(描述、作者等)。php页面。

我已经看到了一些更改标题的方法,即通过过滤“pre\\u get\\u document\\u title”,但我不希望每个页面上的标题都更改。我还没有找到任何一致的方法来更新/添加元标记。

非常感谢您的帮助!

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

使贴在wp_head 将显示元标记的操作hoook函数。在该功能中,您可以:

  • 添加您自己的过滤器,允许您根据查询变量更改值,
  • 或更改标记值(sign1, sign2, ...) 或conditional tags.
add_action( \'wp_head\', \'se344297_description_metatag_display\', 0 );
function se344297_description_metatag_display()
{
    $site_descr = apply_filters( \'description_tag_filter\', \'Sample description text.\' );
    if ( !empty($site_descr) )
       echo \'<meta name="description" content="\' . esc_attr($site_descr) . \'">\';
}

add_filter( \'description_tag_filter\', \'se344297_custom_description_metatag\' );
function se344297_custom_description_metatag( $descr )
{
    // use conditional tags or check query var
    // here to override meta tag
    //
    $sign1 = get_query_var(\'sign1\', false);

    if ( $sign1 == \'AAA\' ) {
        $descr = \'AAA description text\';
    }
    else if ( $sign1 == \'BBB\' ) {
        $descr = \'Description in case of BBB\';
    }

    return $descr;
}

相关推荐

Delete page titles

我正在制作一个以初级主题为主题的网站,它包括一个大条,每个页面上都有一个以大写字母表示的标题。我更喜欢标题出现在帖子的正文中,所以我想把标题栏全部删除。但是,此处建议的插入内容如下.page_header { display: none !important; } 当我将它们输入到“附加CSS”中时,根本不起作用。我做错了什么?记住,当你回答时,我是一个完全的新手。