2016-06-13 41 views
0

我目前使用以下過濾器來替換WordPress'the_content中的字符串'magic_click_link'的任何實例。向ACF WYSIWYG字段添加WordPress過濾器

我剛剛更新了此字段以使用ACF WYSIWYG字段,但這導致過濾器停止工作。我相信我需要在過濾器內部定位除the_content以外的東西,但我不確定需要什麼。

function click_link ($b) { 
    global $post; 
    $this_post_id = $post->ID; 
    $op_name = get_field('operator_name'); 
    $namenospace = make_no_space("$op_name"); 

    $tracking_link = '/go/'.$this_post_id.'/'; 

    $click_link = '<a class="claimCTA" id="operator-step1-'.$namenospace.'" href="'.$tracking_link.'" target="_blank" rel="nofollow">Click here to go to '.$op_name.'!</a>'; 

    $b = str_ireplace('magic_click_link',$click_link,$b); 
    return $b; 
} 

add_filter('the_content', 'click_link'); 
+0

我沒有給你答案,但我確實注意到你沒有使用'$ go_page'來設置'$ tracking_link'來使用'/ go /'。 – Steven

+0

抱歉忽略這些行 – James

+0

你是怎麼和這個@James一起去的? –

回答

1

過濾the_content自動運行在使用功能the_content()任何內容輸出,因此默認情況下,這意味着它僅適用於標準的WordPress崗位和頁面內容。

要將這些過濾器應用於您的自定義字段內容,您還需要在輸出字段內容時手動調用apply_filters()

例如,假設您的自定義字段名爲my_extra_content。憑藉先進的自定義字段,您可以撥打:

echo apply_filters("the_content", get_field("my_extra_content")); 

這將輸出你的字段的內容,同時將所有常用的濾鏡反對。由於您的click_link()功能已被掛鉤到the_content,因此它會根據您的需要處理您的自定義字段內容。