自动为WordPress文章添加标签

2022-11-21 15:55:38 浏览数 (1)

通过下面的代码可自动为WordPress文章添加已使用过的标签。

将代码添加到当前主题函数模板 functions.php 中:

代码一:
代码语言:javascript复制
function zm_auto_add_tags() {
 $post_id = get_the_ID();
if ( $post_id ) : $post_content = get_post( $post_id )->post_content;
if ( !empty( $post_content ) ) {
 $tags = get_tags( array( 'hide_empty' => false ) );
if ( $tags ) {
 $i = 0;
foreach ( $tags as $tag ) {
if ( strpos( $post_content, $tag->name ) !== false ) {
if ( $i == 6 ) break; // 添加数量
 wp_set_post_tags( $post_id, $tag->name, true );
 $i  ;
}
}
}
}
 endif;
}
add_action( 'save_post', 'zm_auto_add_tags' );
代码二:

打乱标签排序,每次更新都会变化。

代码语言:javascript复制
function arraytoobject( $array ) {
if ( is_array( $array ) ) {
 $obj = new StdClass();
foreach ( $array as $key => $val ) {
 $obj->$key = $val;
}
} else {
 $obj = $array;
}
return $obj;
}

function objecttoarray( $object ) {
if ( is_object( $object ) ) {
foreach ( $object as $key => $value ) {
 $array[$key] = $value;
}
} else {
 $array = $object;
}
return $array;
}

function zm_auto_add_tags() {
 $post_id = get_the_ID();
if ( $post_id ) : $post_content = get_post( $post_id )->post_content;
if ( !empty( $post_content ) ) {
 $tags = get_tags( array( 'hide_empty' => false ) );
if ( $tags ) {
 $i = 0;
 $arrs = objecttoarray( $tags );
 shuffle( $arrs );
 $tags = arraytoobject( $arrs );
foreach ( $tags as $tag ) {
if ( strpos( $post_content, $tag->name ) !== false ) {
if ( $i == 6 ) break; // 添加数量
 wp_set_post_tags( $post_id, $tag->name, true );
 $i  ;
}
}
}
}
 endif;
}
add_action( 'save_post', 'zm_auto_add_tags' );

使用时需要注意的是,当你的网站标签非常多,比如几千个,发表更新文章时可能会卡死。

温馨提示:

文章标题:自动为WordPress文章添加标签

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

0 人点赞