WP函数复制正文内容

时间:2014-10-01 作者:Gareth Gillman

我正在尝试在<body> 使用我的插件标记,但我的代码复制了<body> 所容纳之物

我的代码位于http://pastebin.com/rhDX8gsm (相当长)演示URL是http://bit.ly/1mRwyKY

function somefunction() {
    if(!is_admin()){
        global $something;
        if($something[\'switch-on\'] == \'1\') {
            if($something[\'multipanel-on\'] == \'0\' && $something[\'menu-on\'] == \'0\'){
                $insert .=  \'<div id="div1">something here</div>\';
            }

            if($something[\'multipanel-on\'] == \'1\') {
                $insert .=  \'<div id="div2">\';
                $insert .= \'<ul class="carousel_buttons">\';
                $insert .= \'<li><a href="#" id="carousel_prev"></a></li>\';
                $insert .= \'<li><a href="#" id="carousel_next"></a></li>\'; 
                $insert .= \'</ul>\';   
                $insert .= \'</div>\';
            }

            if($something[\'menu-on\'] == \'1\') {
                $insert .= \'<div id="div3">\';
                $insert .= \'<ul class="panel_list">\';
                $insert .= \'<li>\';
                $insert .= \'<a href="\' . $url . \'">\';
                $insert .= \'<i \'.$class1.\'></i>\';
                $insert .= $menupost->post_title;
                $insert .= \'</a>\';
                $insert .= \'</li>\';
                $insert .= \'</ul>\';    
                $insert .= \'</div>\';
            }

            $content = ob_get_clean();
            $content .= preg_replace(\'#<body([^>]*)>#i\',"<body$1>{$insert}",$content);
            echo $content;
        }
    }
}
编辑:更改为使用wp\\U页脚操作,但不打印代码:

add_action(\'wp_footer\', \'somefunction\',100);
function somefunction() {
    if(!is_admin()){
        global $something;
        if($something[\'switch-on\'] == \'1\') {
            if($something[\'multipanel-on\'] == \'0\' && $something[\'menu-on\'] == \'0\'){
                $insert .=  \'<div id="div1">something here</div>\';
            }

            if($something[\'multipanel-on\'] == \'1\') {
                $insert .=  \'<div id="div2">\';
                $insert .= \'<ul class="carousel_buttons">\';
                $insert .= \'<li><a href="#" id="carousel_prev"></a></li>\';
                $insert .= \'<li><a href="#" id="carousel_next"></a></li>\'; 
                $insert .= \'</ul>\';   
                $insert .= \'</div>\';
            }

            if($something[\'menu-on\'] == \'1\') {
                $insert .= \'<div id="div3">\';
                $insert .= \'<ul class="panel_list">\';
                $insert .= \'<li>\';
                $insert .= \'<a href="\' . $url . \'">\';
                $insert .= \'<i \'.$class1.\'></i>\';
                $insert .= $menupost->post_title;
                $insert .= \'</a>\';
                $insert .= \'</li>\';
                $insert .= \'</ul>\';    
                $insert .= \'</div>\';
            }

            return $insert;
        }
    }
}
测试了所有if-else,它们都正常工作(打开时显示0或1,因此认为是我的$insert没有发送到页脚的问题(html中没有显示代码),请查看顶部的演示链接。

2 个回复
最合适的回答,由SO网友:Gareth Gillman 整理而成

发现了问题,不是代码而是实际的IF elses,我已经将它构建的面板从SMOF移动到了Redux,但如果设置为x,SMOF会给输入一个0,但Redux会将其保留为空,因此我基本上是检查输入是否为0,是否失败,因此没有发送内容。

今后的提示,请进一步阅读文档……)

SO网友:Hasin Hayder

<body> 标签如下所示

<body <?php body_class(); ?>>
<?php echo apply_filters("immediately_after_body","");?>
现在在您的功能中。php添加如下过滤器挂钩

add_filter("immediately_after_body","my_function");
function my_function(){
    //do your calculation
    return "<h1>output from Filter Hook</h1>";
}
之后可以立即看到输出<body> 标签使用过滤器,它们是为以下目的而构建的:)

结束

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register