如何仅在内容不为空时添加_Filter?

时间:2019-04-18 作者:Piotr Milecki

我正在尝试添加筛选器,但仅当\\u内容不为空时。所以我试着这样做:

<?php
   $thecontent = get_the_content();
   if(!empty($thecontent)) {

   add_filter(\'the_content\', \'gs_add_img_lazy_markup\', 15);

} ?>
但没有结果。我应该如何做好这件事?

编辑

我想做的是创建一个带有两个过滤器的函数,但只有当\\u内容不为空时才应该执行此函数。现在我做到了:

add_filter(\'the_content\', \'content_image_markup\', 15);
function content_image_markup($the_content) { 
$thecontent = get_the_content();
   if(!empty($thecontent)) {
        // function content
    }
}

add_filter(\'acf_the_content\', \'acf_content_image_markup\', 15); 
function acf_content_image_markup($the_content) {
        // the same function content what above         
}
如何使这更容易?

1 个回复
SO网友:aryxus

根据您的编辑,您希望将一个函数应用于两个不同的过滤器。您只需在两个过滤器上使用相同的函数。我还没有对此进行测试,但应该可以:

function content_image_markup($content) {
    if( !empty($content) ) {
        // example of changing the content
        $content=$content . \' append this to content\';
    }
    return $content
}

add_filter(\'the_content\', \'content_image_markup\', 15);
add_filter(\'acf_the_content\', \'content_image_markup\', 15);

相关推荐

Apply_Filters(‘the_content’,$Content)与DO_ShortCode($Content)

假设我有一个主题选项或自定义的postmeta文本区域。现在我想执行多个短代码、一般文本、图像等。最佳实践是什么?为什么?选项1:$content = //my text area data; echo apply_filters(\'the_content\', $content); 选项2:$content = //my text area data; echo do_shortcode($content); 请告诉我哪一个是最佳实践,以及为什么。EDIT让我详细描