wordpress - 自定义插件打破了网站的结尾

时间:2014-05-06 19:16:43

标签: php wordpress wordpress-plugin

这是我第一次尝试创建自己的插件,一切正常,直到我尝试通过wp-admin添加或更新页面。如果我停用插件,网站将按预期工作。我收到有关已经由我的文件发送的标头的错误,我不知道如何解决这个问题。就像我说的,这是我的第一次尝试。

这是我非常简单的插件文件:

include(plugin_dir_path( __FILE__ ) . 'ndmr-plugin.php');
add_shortcode('small_ndmr_buttons_sc','small_ndmr_buttons');

add_action('init', 'small_ndmr_buttons_plugin');
function small_ndmr_buttons_plugin() {

    add_action('wp_enqueue_scripts', 'ndmr_plugin_stylesheet');

    function ndmr_plugin_stylesheet() {
        wp_register_style('ndmr-plugin-style', plugins_url('style.css', __FILE__), array() );
        wp_enqueue_style('ndmr-plugin-style');

        wp_register_script('ndmr-plugin-jquery', plugins_url('ndmr-plugin-javascript.js', __FILE__), array() );
        wp_enqueue_script('ndmr-plugin-jquery');
    }

}

这是呈现短代码的文件:

function small_ndmr_buttons(){
    return '
        <div class="small-ndmr-buttons">
            <div>
                <p>search</p>
                <ul>'.
                    wp_list_pages('title_li=&child_of=25&echo=0')
                .'</ul>
            </div>
            <div>
                <p>social</p>
                <ul>'.
                    wp_list_pages('title_li=&child_of=27&echo=0')
                .'</ul>
            </div>
            <div>
                <p>design</p>
                <ul>'.
                    wp_list_pages('title_li=&child_of=29&echo=0')
                .'</ul>
            </div>
            <div>
                <p>tv/radio</p>
                <ul>'.
                    wp_list_pages('title_li=&child_of=31&echo=0')
                .'</ul>
            </div>
            <div>
                <p>yellow pages</p>
                <ul>'.
                    wp_list_pages('title_li=&child_of=33&echo=0')
                .'</ul>
            </div>
            <div>
                <p>billboard</p>
                <ul>'.
                    wp_list_pages('title_li=&child_of=35&echo=0')
                .'</ul>
            </div>
            <span class="clear"></span>
        </div>
    ';
}

呈现短代码的文件是我收到错误Cannot modify header information - headers already sent by

的地方

我尝试使用ob_start();,但这只是回显文件中的文本并完全杀死wordpress后端。我错过了与插件有关的内容吗?

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:2)

在打开PHP标记之前或结束标记之后是否有空格?通常,这是导致此类错误的最常见原因。更多信息请参见此代码:https://codex.wordpress.org/FAQ_Troubleshooting