2016-06-13 4 views
0

現在WordPressのthe_content内の文字列 'magic_click_link'のインスタンスを置き換えるために、次のフィルターを使用しています。ACF WYSIWYGフィールドにWordPressフィルターを追加

ACF WYSIWYGフィールドを使用するようにこのフィールドを更新しましたが、これによりフィルタが機能しなくなりました。フィルタ内にthe_content以外のものをターゲットにする必要があるとは思いますが、何が必要なのか分かりません。デフォルトでは、これはそれが唯一の標準のWordPressのポストとページのコンテンツに適用されることを意味して

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'を' $ go_plink'を使って '/ go /'を使うように設定していることに気付きました。 – Steven

+0

ごめんなさいこれらの行を無視してください – James

+0

この@Jamesにどうやって行ったのですか? –

答えて

1

フィルタthe_contentは自動的に、機能the_content()を使用して、任意のコンテンツ出力上で実行されます。

これらのフィルタをカスタムフィールドコンテンツにも適用するには、フィールドコンテンツを出力するときに手動でapply_filters()を呼び出す必要があります。

たとえば、カスタムフィールドがmy_extra_contentと呼ばれているとします。高度なカスタムフィールドを使って、呼び出すことができます。

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

この意志の出力あなたのフィールドの内容、それに対してすべての通常のフィルタを適用しながら。 click_link()関数はすでにthe_contentにフックされているため、必要に応じてカスタムフィールドコンテンツを処理します。

関連する問題