函数中的ADD_ACTION,这可能吗?

时间:2012-03-20 作者:Joshua

我正在尝试使用add_action(\'wp_head\', \'js_func\'); 当在函数之后发布时,它会起作用,但是我不想在每个页面上发布它,只想在与它相关的页面上发布,我正在尝试这样做

function things_to_do_on_this_page() {
    add_action(\'wp_head\', \'js_func\');
    //other functiony things
}
然而,当它被这样调用时,js根本就不会被放置,从而破坏了页面。

有可能做到这一点吗?

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

如果你想知道自己是否在某个特定的页面、帖子、类别档案中,那么core必须提供Conditional Tags 为了这个。

如果要挂接js脚本定义,那么更好的方法是:

// Assuming that you drop your js code into a separate file instead of just between <script>-tags

// 1st: Register during init hook
function add_my_script()
{
    wp_register_script( $name, $url, $dependency, filemtime( $path ), true )
}
add_action( \'init\', \'add_my_script\' );

// 2nd: Enqueue during enqueue hook
function enqueue_my_script()
{
    // Choose your conditions:
    // On Admin, check against "global $hook_suffix, $pagenow, $typenow"
    if ( \'post-new.php\' !== $typenow )
        return;
    // On public pages, choose your conditions from the list of Conditional Tags
    // Example: Only on pages
    if ( ! is_page() )
        return;
    // ...Nothing to do on login

    // print the script to the screen
    wp_enqueue_script( $name );
}
// Choose where you need it
add_action( \'wp_enqueue_scripts\', \'enqueue_my_script\' );
add_action( \'admin_enqueue_scripts\', \'enqueue_my_script\' );
add_action( \'login_enqueue_scripts\', \'enqueue_my_script\' );
<小时>

EDIT

你可以总结/收集你所有的小函数,把它们挂在某个地方add_action 调用在主题可用的第一个挂钩上加载的函数:after_setup_theme. 重要的是,儿童主题发挥作用。首先加载php,然后加载父主题,然后加载after_setup_theme 钩因此,您可以打开从父主题或子主题内部更改内容的可能性。

function theme_bootstrap_fn() 
{
    add_action( \'wp_head\', \'js_func\' );
    // other functiony things
}
add_action( \'after_setup_theme\', \'theme_bootstrap_fn\' );

// Define your function:
function js_func()
{
    echo "
        <script type=\'text/javascript>
            // do stuff
            // Add variables like this:
            {$some_var}
        </script>";
}
但要回答您的问题:是的,您可以调用另一个函数中的每个全局函数

结束

相关推荐

Functions.php错误-尝试更改主题时

在尝试替换wordpress主题后,它表示功能。主题目录中的php文件(最后一行)不正常分析错误:语法错误,意外的$end in/主题/主题名/功能。php在线1500第1500行实际上是唯一的符号?>EDIT好的,这是函数的pastebin链接。有错误的php文件http://pastebin.com/by5TtZq6p、 我想知道——既然它应该是一个现成的模板——那么它怎么可能是错误的——它应该是有效的p、 可能是因为改变wordpress的设置或使用了一些不好的插件而导致的混乱?(如perma