首页 wordpress教程 WordPress自动添加已使用过的tag标签

WordPress自动添加已使用过的tag标签

2020-07-23 0 2 142

在我们使用wordpress发表文章时,手动给文章添加标签会比较麻烦?

所以我寻思着能不能在后台发布文章时,自动添加已经使用过的tag标签,于是百度搜了搜,还真有这个方法,找到了三种方法,可以根据自身主题情况选用。

方法一

// WordPress 自动为文章添加已使用过的标签

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 );
		}
	}
}

方法二

优化增强的版本,可控制标签输出数量。



// WordPress 自动为文章添加已使用过的标签
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 ,增加了标签打乱功能。


// WordPress 自动为文章添加已使用过的标签
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++;
			}
		}
	}
}

总结

推荐使用第三种方法。

标题:WordPress自动添加已使用过的tag标签

分类:wordpress教程

链接:https://www.ygtheme.com/175.html

版权:

评论
暂无评论