Meta Description-获取类别描述的模板代码

时间:2016-03-14 作者:g491

下面是我为header编写的代码。php,以便获取产品类别的描述并用于<meta> 在站点上查看此类“页面”时的描述标记。

有没有更“WordPress方式”来实现这一点,比如我应该使用一个函数,而不是引用description 返回的对象的属性get_queried_obj()? 我原本想使用term_description() 但这增加了<p> 标签,这样我就不会走这条路了(我知道我可以用一个内置函数来剥离它们,但这似乎不是一个好的做法)。

这个elseif 下面的代码块是关键代码:

<?php
if (is_single() || is_page()) {
    $description = get_post_meta(get_the_ID(), \'description\', true);
} elseif (is_tax()) {
    //Product categories
    $obj_temp = get_queried_object();
    $description = $obj_temp->description;
} else {
    $description = get_bloginfo(\'description\');
} 
if (trim($description) !== \'\') {
    ?>
    <meta name="description" content="<?php echo htmlspecialchars($description); ?>" />
    <?php
}
?>

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

有没有更“WordPress方式”来做到这一点。。。

我真的不知道你所说的更多的WordPress方式是什么意思,但总的来说,你得到术语描述的方式是一种更可靠的方式。这样,您就不需要访问$post 许多人使用的全球。只是为了兴趣,请看my post here 关于为什么要避免$post 全球的

但是,我会从$GLOBALS[\'wp_the_query\']->get_queried_object() 这比get_queried_object(), 然后把它传过去get_term() 将术语过滤器应用于术语的步骤

} elseif ( is_tax() ) {
    //Product categories
    $obj_temp    = get_term( $GLOBALS[\'wp_the_query\']->get_queried_object() );
    $description = $obj_temp->description;
}
另一种可能的方法是从URL获取术语slug和分类法,然后获取完整的术语对象以获取描述

} elseif ( is_tax() ) {
    //Product categories
    $obj_temp    = get_term_by( \'slug\', get_query_var(\'term\'), get_query_var(\'taxonomy\') );
    $description = $obj_temp->description;
}        
编辑-来自评论$GLOBALS[\'wp_the_query\']->get_queried_object()get_queried_object()

实际上,我们对此进行了讨论my answer 针对以下问题

  • $GLOBALS['wp_the_query'] vs global $wp_query

    var_dump( $GLOBALS[\'wp_the_query\']->get_queried_object() );
    var_dump( get_queried_object() );
    
    query_posts( \'s=crap\' );
    
    
    var_dump( $GLOBALS[\'wp_the_query\']->get_queried_object() );
    var_dump( get_queried_object() );
    
    此外,如果没有将术语过滤器应用于术语,可能会出现什么不良情况

    术语数据未经清理,特别是直接从超级全局使用时,因此它可能包含注入恶意代码或黑客URL到您不想要的某些核心色情网站。应用术语过滤器根据术语字段清理数据,使其保存以供使用。

    清理、验证和转义数据应该是一种习惯,而不是一种有争议的额外行为。黑客喜欢未经清理和验证的数据,他们可以将任何恶意代码注入您的网站,并通过这些代码访问您的网站。我能永远告诉你的最好的建议是,始终根据数据类型对所有数据进行清理、验证和转义,无论数据来自何处(即使它来自你自己),也不管它将用于什么用途。这样,黑客就很难入侵你的网站

相关推荐

Updating modified templates

我想调整一些。php模板文件在我的WordPress主题中,我知道正确的过程是将相关文件复制到子主题文件夹中并在那里编辑文件,这样我的修改就不会在将来的主题更新中丢失。但这是否意味着我将无法从主题更新中获益,因为我将文件放在了我的子主题文件夹中?这可能不是一件好事,因为主题更新可能添加了一些有用的特性,甚至修复了我最初需要对代码进行调整的问题!这方面的常见解决方案是什么?有人推荐了一款Diff应用程序——这是人们常用的吗?