如何将_Filter添加到非钩子函数

时间:2013-07-04 作者:KaNdombe Webs

想法是如果用户选择主题中的选项,则应用一些过滤器,但我有一个问题

我制作了一个函数,将post\\u thumbnail\\u html替换为个性化html

然后,我创建了其他为timthumb创建thumnails的函数

我正在尝试将add\\u过滤器应用于timthumb函数,但它不起作用,因为它不是wordpress挂钩

你能帮我吗?

function kandombe_theme_thumb($id, $width, $height, $align=\'\') {

        //some code

        $html = \'<img class="archive_thumb" src=\'.$image_url.\' width="\'.$width.\'" height="\'.$height.\'"/>\';

        return $html;

    }

if ($data[\'speed_lazy_loading\']) { 

    function kandombe_lazy_loads( $html ) {

        //some code

        $html = preg_replace( \'#<img([^>]+?)src=[\\\'"]?([^\\\'"\\s>]+)[\\\'"]?([^>]*)>#\', sprintf( \'<img${1}src="%s" data-original="${2}"${3} style="display: block;"><noscript><img${1}src="${2}"${3}></noscript>\', $placeholder_image ), $html );

    return $html;
    }

add_filter( \'the_content\', \'kandombe_lazy_loads\');
add_filter( \'post_thumbnail_html\', \'kandombe_lazy_loads\');
add_filter( \'kandombe_theme_thumb\', \'kandombe_lazy_loads\');
add_filter( \'get_avatar\', \'kandombe_lazy_loads\');

}

1 个回复
SO网友:s_ha_dum

假设:add_filter( \'kandombe_theme_thumb\', \'kandombe_lazy_loads\');-- 就是你所说的线/钩。

您不需要连接到函数。这不是它的工作原理。挂钩必须使用apply_filtersdo_action. 您的代码必须这样编写才能正常工作:

function kandombe_theme_thumb($id, $width, $height, $align=\'\') {
    //some code
    $html = apply_filters(
      \'kandombe_theme_thumb\',
      \'<img class="archive_thumb" src=\'.$image_url.\' width="\'.$width.\'" height="\'.$height.\'"/>\'
    );
    return $html;
}
相关

https://wordpress.stackexchange.com/a/103644/21376

结束

相关推荐

如何访问调用Apply_Filters()的函数中的变量?

我试图根据调用的函数中的变量是否apply_filters() 等于特定值。该变量不会传递给apply_filters() 参数。这或许可以解释我的意思:// function in wordpress core function get_var_b() { // generating $var_a $var_a = \"a\"; // some code ... $var_b = apply_filters(\'get_var_b\