Php 条件标记内的函数

Php 条件标记内的函数,php,wordpress,Php,Wordpress,假设我有这样一个函数: add_filter("post_gallery", "fix_my_gallery_wpse43558",10,2); function fix_my_gallery_wpse43558($output, $attr) { // blah, blah, blah } 基本上,上面的函数允许我使用post_gallery过滤器覆盖内置(又称默认)WordPress图像库模板 问题是,我只想在我的自定义提要中覆盖默认的WordPress图像库模板,为此我需要使

假设我有这样一个函数:

add_filter("post_gallery", "fix_my_gallery_wpse43558",10,2);
function fix_my_gallery_wpse43558($output, $attr) {

    // blah, blah, blah

}
基本上,上面的函数允许我使用
post_gallery
过滤器覆盖内置(又称默认)WordPress图像库模板

问题是,我只想在我的自定义提要中覆盖默认的WordPress图像库模板,为此我需要使用
if(is_feed($feed='custom_feed')){……}
条件标记

问题是,在条件标记内操作函数的正确方法是什么

if ( is_feed( $feeds = 'custom_feed' ) ) {

    add_filter("post_gallery", "fix_my_gallery_wpse43558",10,2);
    function fix_my_gallery_wpse43558($output, $attr) {

        // blah, blah, blah

    }

}


我将使用您的第一个解决方案,因为过滤函数只需要在提要中执行


但是没有“正确的方法”,因为两种解决方案都应该有效…

我会使用第一种。这会更快,因为过滤器在不需要时将被忽略

另外,在第二个示例中,您还需要扔掉$output,从速度的角度来看,这同样有点浪费

add_filter("post_gallery", "fix_my_gallery_wpse43558",10,2);
function fix_my_gallery_wpse43558($output, $attr) {

    if ( is_feed( $feeds = 'custom_feed' ) ) {

        // blah, blah, blah

    }

}