wp_head和wp_footer挂钩无法正常工作

时间:2015-11-28 06:59:54

标签: wordpress wordpress-plugin

我制作了一个自定义主题选项插件,并将以下代码放入插件文件

add_action( 'init', 'test_head_footer_init' );
function test_head_footer_init() {
    add_action( 'wp_head', 'childtheme_favicon'); 
    add_action( 'wp_footer', 'childtheme_analytics');
}

function childtheme_favicon() {
        $shortname =  get_option('of_shortname'); 
        if (get_option($shortname . '_custom_favicon') != '') {
            echo '<link rel="shortcut icon" href="'.  get_option($shortname .'_custom_favicon')  .'"/>'."\n";
        }
}

function childtheme_analytics(){
    $shortname =  get_option('of_shortname');
    $output = get_option($shortname . '_google_analytics');
    if ( $output <> "" ) 
        echo stripslashes($output) . "\n";
}   

当我运行我的代码并检查主页URL页面标记时没有打印。页脚相同。

你能指导一下我的错误吗?

提前致谢。

ANSWER

上面的代码工作正常,但在我的插件文件中我添加了if(is_admin()) 条件高于此代码。这就是为什么我这边的代码不起作用的原因。现在我删除了它,代码工作得很好。

1 个答案:

答案 0 :(得分:0)

你不需要使用init动作,没有它就可以运行。

add_action( 'wp_head', 'childtheme_favicon'); 
add_action( 'wp_footer', 'childtheme_analytics');

function childtheme_favicon() {
        $shortname =  get_option('of_shortname'); 
        if (get_option($shortname . '_custom_favicon') != '') {
            echo '<link rel="shortcut icon" href="'.  get_option($shortname .'_custom_favicon')  .'"/>'."\n";
        }
}

function childtheme_analytics(){
    $shortname =  get_option('of_shortname');
    $output = get_option($shortname . '_google_analytics');
    if ( $output <> "" ) 
        echo stripslashes($output) . "\n";
}  

此外,您需要将其放在functions.php或插件文件中。如果你试图把它放在header.php中,它就不会工作,因为代码需要在wp_head挂钩之前运行,否则什么都不会发生。