2017-05-12 154 views
0

我有了這個代碼片段,在the_content(取代具體詞)WordPress的與鏈接內容的鏈接替換標籤字

function link_words($text) { 

$replace = array(
'google' => '<a href="http://www.google.com">google</a>', 
'computer' => '<a href="http://www.computer.com">computer</a>', 
'keyboard' => '<a href="http://www.keyboard.com">keyboard</a>' 
); 

$text = str_replace(array_keys($replace), $replace, $text); 
return $text; 
} 

add_filter('the_content', 'link_words'); 

我想用get_the_tags()$替換數組,因此它會用指向其標記歸檔的鏈接替換特定的標記詞。

+0

問題尚不清楚。給一些示例 – JYoThI

回答

1

下面是完整的解決方案。

function link_words($text) { 

    $replace = array(); 
    $tags = get_tags(); 

    if ($tags) { 
     foreach ($tags as $tag) { 
      $replace[ $tag->name ] = sprintf('<a href="%s">%s</a>', esc_url(get_term_link($tag)), esc_html($tag->name)); 
     } 
    } 

    $text = str_replace(array_keys($replace), $replace, $text); 
    return $text; 
} 
add_filter('the_content', 'link_words'); 

請注意,我沒有用get_the_tags功能,因爲它只返回分配給後標記,以便代替我使用的功能get_tags

1

get_the_tags()將返回一個WP_Term對象的數組。您將不得不循環這些對象來構建您的$replace陣列。

例子:

$replace = array(); 
$tags = get_the_tags(); 

if ($tags) { 
    foreach ($tags as $tag) { 
     $replace[ $tag->name ] = sprintf('<a href="%s">%s</a>', esc_url(get_term_link($tag)), $tag->name); 
    } 
}