每次都要手動給文章添加標簽,很麻煩?不知文章是否出現以前用過的標簽,怎麼辦?以下代碼就可以解決這些問題,它會在你發佈/保存文章時,檢測文章的內容中,是否出現曾經使用過的標簽,如果出現,就自動為文章添加這些標簽。
將代碼添加到主題的 functions.php 即可:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/** * WordPress 自動為文章添加已使用過的標簽 * https://www.wpdaxue.com/auto-add-tags.html */ 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 自動為文章添加已使用過的標簽
* https://www.wpdaxue.com/auto-add-tags.html
*/
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 );
}
}
}
代碼出自:http://wordpress.org/plugins/auto-add-tags/
感謝 @大朗部落格 優化增強的版本:
修改後可控制標簽輸出數量。
代碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// 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++; } } } } |
// 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 ,增加瞭標簽打亂功能。
標簽打亂增強版:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
// 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 自動為文章添加已使用過的標簽
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++;
}
}
}
}
@大朗部落格:http://www.darlang.com/2018/01/wordpress-automatically-tags-new-posts-controllable-number-of-tags/