现在Tag标签的作用越来越大,以致很多软件app等直接取消了传统的文章目录而只用Tag标签,但是还是有很多站长不为优化wordpress文章添加Tag标签,可能原因就是每次发布文章都要手动去找为文章添加一堆Tag标签,有时还不知文章是否出现以前用过的标签,总之有点太麻烦了。
扩展阅读:WordPress网站建设中分类和标签的区别如何规划
那么有没有可能让 WordPress文章自动添加以前使用过的Tag标签呢?本文以下代码就可以解决 wordpress文章自动添加标签tag的问题,它会在你发布/保存/更新文章时,检测文章的内容中是否出现曾经使用过的标签,如果出现就自动为文章添加这些标签,简单方便高效。
PS:这个WordPress纯代码实现自动添加文章标签的前提条件就是站点的已有标签足够多,否则就体现不出这个代码的高效优势了。
WordPress纯代码实现自动添加文章标签的实现方法:只需要将以下代码添加到当前主题的 functions.php文件中即可
- add_action('save_post', 'auto_add_tags');
- function auto_add_tags(){
- $tags = get_tags( array('hide_empty' => false) );
- $post_id = get_the_ID();
- $post_content = get_post($post_id)->post_content;
- if ($tags) {
- foreach ( $tags as $tag ) {
-
- if ( strpos($post_content, $tag->name) !== false)
- wp_set_post_tags( $post_id, $tag->name, true );
- }
- }
- }
以上是基础版代码,还有高级版和高级增强版代码:
- add_action('save_post', 'auto_add_tags');
- function auto_add_tags(){
- $tags = get_tags( array('hide_empty' => false) );
- $post_id = get_the_ID();
- $post_content = get_post($post_id)->post_content;
- if ($tags) {
- $i = 0;
- foreach ( $tags as $tag ) {
-
- if ( strpos($post_content, $tag->name) !== false){
- if ($i == 5) {
- break;
- }
- wp_set_post_tags( $post_id, $tag->name, true );
- $i++;
- }
- }
- }
- }
上面是高级版代码可以控制自动添加标签的数量,但这样输出会默认输出内容中已有的前几个标签,但考虑到每次输出都是标签库里面的前几个标签不利于内容编排SEO,所以又增加了文章内容中所有标签打乱功能的高级增强版代码如下:
- function array2object($array) {
- if (is_array($array)) {
- $obj = new StdClass();
- foreach ($array as $key => $val){
- $obj->$key = $val;
- }
- }
- else {
- $obj = $array;
- }
- return $obj;
- }
- function object2array($object) {
- if (is_object($object)) {
- foreach ($object as $key => $value) {
- $array[$key] = $value;
- }
- }
- else {
- $array = $object;
- }
- return $array;
- }
- add_action('save_post', 'auto_add_tags');
- function auto_add_tags(){
- $tags = get_tags( array('hide_empty' => false) );
- $post_id = get_the_ID();
- $post_content = get_post($post_id)->post_content;
- if ($tags) {
- $i = 0;
- $arrs = object2array($tags);shuffle($arrs);$tags = array2object($arrs);
- foreach ( $tags as $tag ) {
-
- if ( strpos($post_content, $tag->name) !== false){
- if ($i == 5) {
- break;
- }
- wp_set_post_tags( $post_id, $tag->name, true );
- $i++;
- }
- }
- }
- }
好了,现在你有三种版本的自动添加标签tag的代码可以选择合适的使用了,那还有没有能让 WordPress文章自动添加的Tag标签在内容正文中出现直接变成内链呢?
答案是肯定的,可以查看 给wordpress文章内容中标签文本自动添加链接的方法
至此你的WordPress站点已经实现自动为文章添加Tag标签,并自动为这些标签添加链接变成内连接的 WordPress标签添加全自动方案。(亲测代码在 WordPress 5.4.4 版本有效)
转载请注明链接地址:荐爱小站 » 为 WordPress文章自动添加已有标签tag的纯代码方法