Wordpress,如何更改帖子标题以显示帖子类别?

时间:2018-06-14 16:43:08

标签: php wordpress wordpress-theming

在我们使用的主题中,Mesmerize-Pro,对于所有帖子,它在两个地方显示帖子标题:

  1. (英雄头衔)标题和
  2. 实际的帖子标题。
  3. 示例:(已删除链接)

    我很乐意改变最顶级的英雄角色而不是显示帖子类别。

    我可以通过functions.php将帖子标题更改为类别,但这样做的意义不大。

    感谢您的帮助。

    -e

    详细说明:

    .inner-header-description h1.hero-title (Top Title, want to be the Category)
    
    .post-item .post-content-single body #page h1 (Post Title, as is)
    

1 个答案:

答案 0 :(得分:0)

看看这个主题,它确定英雄头衔似乎有点过于复杂。如果主题中没有覆盖选项(我没有安装它来检查),那么您可以看到一个mesmerize_header_title过滤器,它显然是如何改变的WooCommerce页面上的标题本身就是主题。

有一点需要注意的是,帖子上可能有很多类别,因此通常您只想显示第一个类别。我们可以使用get_the_category()返回WP_Term个对象的数组,并将第一个应用于标题标题过滤器:

add_filter('mesmerize_header_title', function($title){
    if( is_single() ){
        $categories = get_the_category();
        $title      = $categories[0]->name;
    }

    return $title;
});

你应该能够将它放在functions.php文件中并且好好去。

我将此代码基于包含以下内容的/inc/woocommerce/woocommerce.php文件:

add_filter('mesmerize_header_title', function ($title) {

    if (mesmerize_is_page_template()) {
        if (is_archive() && mesmerize_get_current_template() === "woocommerce.php") {
            $title = woocommerce_page_title(false);
        }
    }

    return $title;
});