通过下面的代码可自动为WordPress文章添加已使用过的标签。
将代码添加到当前主题函数模板 functions.php 中:
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' );
打乱标签排序,每次更新都会变化。
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文章添加标签
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。