web-dev-qa-db-ja.com

Acf wysiwygフィールドのimgタグとiframeタグの周囲のpタグを削除する方法

高度なカスタムフィールドwysiwygフィールドを照会しています。問題は出力wordpressがpタグ付きの時折のimgsとiframeをラップしていても、私が何をしようと関係ありません。次のコードでimgsとiframeだけを除外しようとすると失敗するので、wpautopを無効にしてくださいremove_filter ('acf_the_content', 'wpautop');but。

function filter_ptags_on_images($content)
{
    $content = preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);
    return preg_replace('/<p>\s*(<iframe .*>*.<\/iframe>)\s*<\/p>/iU', '\1', $content);
}
add_filter('the_content', 'filter_ptags_on_images');

誰かがその目標を達成する方法についての提案を持っていますか?よろしくラルフ

1
rpk

もしあなたが高度なカスタムフィールドのためにimgとiframeのためにpタグを取り除きたいなら、the_contentacf_the_contentと交換しなければなりません。コードはそのように見えます:

function filter_ptags_on_images($content)
{
    $content = preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);
    return preg_replace('/<p>\s*(<iframe .*>*.<\/iframe>)\s*<\/p>/iU', '\1', $content);
}
add_filter('acf_the_content', 'filter_ptags_on_images');
1
rpk