如何根据帖子标题自动应用类别?

时间:2018-12-29 作者:Christian Dwi Wijaya

我有一个Wordpress网站,讨论笔记本电脑评论。在每一篇文章中,我总是在标题上添加一个类别名称。

例如,“ASUS ZenBook UX480FD Review”被归类为“ASUS”。

但是,我需要手动添加类别。为了提高效率,我希望我的网站根据帖子标题(尤其是标题的第一个单词)自动应用类别。

有人知道这样做的插件或代码吗?

谢谢

注意:类别slug已创建

1 个回复
SO网友:Unicco

你可以试试这个。我还没有真正测试过它,所以我不确定它是否有效-可能还需要一些小的调整。

function add_category_based_on_title( $post_id ) {

    // title
    $title = get_the_title( $post_id );

    // get first part of title
    $substr = explode( " ", $title )[0];

    // get category id
    $category_id = get_cat_ID( $substr ); 

    // check category
    if ( ! empty( $category_id ) ) ) {

        // set category
        wp_set_post_categories( $post_id, [ $category_id ], true )

    }

}
add_action( \'save_post\', \'add_category_based_on_title\' );
参考文献:

https://codex.wordpress.org/Function_Reference/wp_set_post_categorieshttps://codex.wordpress.org/Function_Reference/get_cat_IDhttps://developer.wordpress.org/reference/functions/get_the_title/

相关推荐

GET_POSTS在页面模板中工作,但不在短码中工作

我正在尝试编写一个短代码,其中包括“get\\u posts”,以便获取博客帖子数据,然后在页面上显示最近的3篇文章。此代码在模板中工作。然而,当我将其放入输出缓冲区(ob\\u start)内的短代码中时,它无法检索帖子。相反,它会获取当前页面本身并循环浏览该页面(在本例中为主页)。你知道我怎样才能让它按照最初的意图在帖子中循环吗?以下是在模板中工作的代码:<?php $lastposts = get_posts( array(\'posts_per_page\' => 3) );?>