将变量传递给挂钩到Genesis条目内容的函数

时间:2017-07-11 作者:AJD

我正在Genesis中使用一个自定义页面模板,需要删除帖子内容,并在设置了特定条件后将其替换。这部分工作正常,但我还需要在新内容中显示来自变量的信息。

这看起来很简单,但有些地方不起作用,我想这是因为我不知道如何将变量正确地传递到函数中。我假设在函数外部指定的变量将在函数中可用。这是我的模板:

//* Template Name: Notification Template

$notice ="ALERT!"; //This will be set dynamically from code above, but I\'ll keep it simple for now. 

if($notice){

        //echo $notice ; // If I echo here, it displays at the top of the page.

        remove_action( \'genesis_entry_content\', \'genesis_do_post_content\' );

        add_action ( \'genesis_entry_content\', \'do_custom_content\', 5 );

        function do_custom_content(){                           

            echo $notice; // This is not displaying anything!
            echo \'Test Output\'; //This text does display

        }
    }
当我在do\\u custom\\u content()函数中回显$通知时,什么都没有发生。因此,我可能不理解php是如何工作的,因为$notice没有传递到do\\u custom\\u content()函数中。

1 个回复
最合适的回答,由SO网友:brianjohnhanna 整理而成

如果要动态设置通知,我要做的就是在回调函数中拉入通知。但如果你出于任何原因不能做到这一点,你可以做一些像这样的魔法:

if( $notice ) {

    remove_action( \'genesis_entry_content\', \'genesis_do_post_content\' );

    add_action ( \'genesis_entry_content\', function() use ($notice) {
        echo $notice;
    }, 5 );

}
这利用了php use keyword available to anonymous functions.

结束

相关推荐

将变量传递给挂钩到Genesis条目内容的函数 - 小码农CODE - 行之有效找到问题解决它

将变量传递给挂钩到Genesis条目内容的函数

时间:2017-07-11 作者:AJD

我正在Genesis中使用一个自定义页面模板,需要删除帖子内容,并在设置了特定条件后将其替换。这部分工作正常,但我还需要在新内容中显示来自变量的信息。

这看起来很简单,但有些地方不起作用,我想这是因为我不知道如何将变量正确地传递到函数中。我假设在函数外部指定的变量将在函数中可用。这是我的模板:

//* Template Name: Notification Template

$notice ="ALERT!"; //This will be set dynamically from code above, but I\'ll keep it simple for now. 

if($notice){

        //echo $notice ; // If I echo here, it displays at the top of the page.

        remove_action( \'genesis_entry_content\', \'genesis_do_post_content\' );

        add_action ( \'genesis_entry_content\', \'do_custom_content\', 5 );

        function do_custom_content(){                           

            echo $notice; // This is not displaying anything!
            echo \'Test Output\'; //This text does display

        }
    }
当我在do\\u custom\\u content()函数中回显$通知时,什么都没有发生。因此,我可能不理解php是如何工作的,因为$notice没有传递到do\\u custom\\u content()函数中。

1 个回复
最合适的回答,由SO网友:brianjohnhanna 整理而成

如果要动态设置通知,我要做的就是在回调函数中拉入通知。但如果你出于任何原因不能做到这一点,你可以做一些像这样的魔法:

if( $notice ) {

    remove_action( \'genesis_entry_content\', \'genesis_do_post_content\' );

    add_action ( \'genesis_entry_content\', function() use ($notice) {
        echo $notice;
    }, 5 );

}
这利用了php use keyword available to anonymous functions.

相关推荐