【问题标题】:WordPress adds p tags to plugin code outputWordPress 在插件代码输出中添加 p 标签
【发布时间】:2016-09-30 17:34:20
【问题描述】:

如果我创建一个页面,并在编辑器中输入一个内容,即 Slider Revolution 短代码 ([rev_slider alias="grill_accessories"][/rev_slider]),我的幻灯片将无法正常工作。由于某种原因,高度只有 48 像素高。您可以在此处查看示例页面:sample slider page

当我在 Chrome(或 FireFox)中使用 Web Developer 检查 html 时,我注意到有 p 标签散布在 output.class.php 文件的 <script> 代码输出中和周围。

例如,这里是 output.class.php 文件中的代码示例函数,它创建了一个<script> 输出:

public function add_inline_styles(){

    if(!is_admin()){
        echo '<script>var htmlDiv = document.getElementById("rs-plugin-settings-inline-css"); var htmlDivCss="';
    } 
    else echo "<style>";

    $db = new RevSliderDB();

    $styles = $db->fetch(RevSliderGlobals::$table_css);
    foreach($styles as $key => $style){
        $handle = str_replace('.tp-caption', '', $style['handle']);
        if(!isset($this->class_include[$handle])) unset($styles[$key]);
    }

    $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n");
    $styles = RevSliderCssParser::compress_css($styles);

    if(!is_admin()){
        echo addslashes($styles).'";
            if(htmlDiv) {
                htmlDiv.innerHTML = htmlDiv.innerHTML + htmlDivCss;
            }else{
                var htmlDiv = document.createElement("div");
                htmlDiv.innerHTML = "<style>" + htmlDivCss + "</style>";
                document.getElementsByTagName("head")[0].appendChild(htmlDiv.childNodes[0]);
            }
        </script>'."\n";
    } 
    else echo $styles.'</style>';

}

但这就是它在输出上的样子,使用 Web 开发者工具检查器:

var htmlDiv = document.getElementById("rs-plugin-settings-inline-css"); var htmlDivCss="";
            if(htmlDiv) {
                htmlDiv.innerHTML = htmlDiv.innerHTML + htmlDivCss;
            }else{
                var htmlDiv = document.createElement("div");
                htmlDiv.innerHTML = "</p>
<style>" + htmlDivCss + "</style>
<p>";
                document.getElementsByTagName("head")[0].appendChild(htmlDiv.childNodes[0]);
            }

我远不是 WordPress 专家,如果我是的话,我什至可能不会问,但我已经尝试过

remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );

...将它添加到我的functions.php 的顶部或我的functions.php 的底部(似乎没有明确说明必须在哪里添加这两行代码,或者它可能没有'没关系),它永远不会真正起作用。我也尝试过各种插件,例如 Toggle wpautop,但据我所知,它们什么也没做。

【问题讨论】:

    标签: php html wordpress slider


    【解决方案1】:

    我不确定这是否是您要查找的内容。但是您可以在该模板中不想显示滑块,为此使用 rev 滑块短代码。所以,假设你在 frontpage.php 中有它,那么你可以像这样显示它:

    <?php putRevSlider("grill_accessories") ?>
    

    【讨论】:

    • 我曾考虑将 php 代码直接放入我的模板中,但如果我有 20 个页面使用相同的模板,但希望每个页面使用不同的滑块怎么办?当然可以,但是 WordPress 似乎还有其他问题,我无法将短代码放入编辑器中。谢谢,这个答案不错。
    • 也许是因为您不必关闭短代码,所以它会像这样显示 [rev_slider alias="grill_accessories"]
    • 嗯,我一开始试过没有关闭它。但是我只是按照您的方式尝试了它,它实际上显示出事态的改善,所以我将继续并将您标记为最佳答案。 :) 是的,当然,这是我过去 16 小时以来取得的最好成绩。谢谢。
    • 不客气!我很高兴它对你有用:)
    猜你喜欢
    • 1970-01-01
    • 2013-05-26
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    相关资源
    最近更新 更多