4

我知道这方面有很多话题,我已经看过所有这些话题,但没有一个解决方案适用于我。

我已经在页面编辑器的“文本”侧放置了一个简码来运行响应式滑块的 jscript。然而,当我加载页面时,源代码在每行 javascript 之后都有大量的段落标签。它甚至在它甚至要求内容本身之前都有一个段落标签。

我已经尝试编辑我的主题的functions.php 文件(原因2.0),但我不确定我是否可以正确标记它,它非常重php。我还尝试了这里建议的五个插件。它们都没有任何效果。

代码很可怕,看起来像这样:

 <p>                <!-- START REVOLUTION SLIDER --></p>
 <div id="rev_slider_1_1_wrapper" class="rev_slider_wrapper" style="margin:0px auto;background-color:#E9E9E9;padding:0px;margin-top:0px;margin-bottom:0px;">
 <div id="rev_slider_1_1" class="rev_slider" style="display:none;">
<ul>
 <li data-transition="slidehorizontal" data-slotamount="5" data-masterspeed="300" data-link="http://www.secondhandculture.org/mad-men-and-attraction"  >
                    <img src="http://www.secondhandculture.org/wp-admin/admin-ajax.php?action=revslider_show_image&#038;img=uploads%2F2012%2F12%2Fmad-men-image.jpg&#038;h=300&#038;t=exact" ></p>
<div class="caption sft"<br />
                 data-x=&#8221;400&#8243;<br />
                 data-y=&#8221;20&#8243;<br />
                 data-speed=&#8221;300&#8243;<br />
                 data-start=&#8221;200&#8243;<br />
                 data-easing=&#8221;easeOutExpo&#8221;><img src="http://www.secondhandculture.org/wp-content/uploads/2012/12/Mad-men-text.png" alt="Mad Men"></div>
<div class="caption big_white sfr"<br />
                 data-x=&#8221;550&#8243;<br />
                 data-y=&#8221;140&#8243;<br />
                 data-speed=&#8221;300&#8243;<br />
                 data-start=&#8221;500&#8243;<br />
                 data-easing=&#8221;easeOutExpo&#8221;>How it makes us love      <br><br />
what we know we should hate, <br><br />
 and asks us why</div>
 </li>
 </ul>
 <div class="tp-bannertimer tp-bottom"></div>
</p>
</div>
</div>
 <p>            <script type="text/javascript"></p>
 <p>                var tpj=jQuery;</p>
 <p>                                    tpj.noConflict();</p>
 <p>                tpj(document).ready(function() {</p>
 <p>                if (tpj.fn.cssOriginal != undefined)
                tpj.fn.css = tpj.fn.cssOriginal;</p>
 <p>                var revapi1 = tpj('#rev_slider_1_1').show().revolution(
                {
                    delay:9000,
                    startwidth:,
                    startheight:300,
                    hideThumbs:200,</p>
 <p>                        thumbWidth:100,
                    thumbHeight:50,
                    thumbAmount:1,</p>
 <p>                        navigationType:"none",
                    navigationArrows:"nexttobullets",
                    navigationStyle:"round",</p>
 <p>                        touchenabled:"on",
                    onHoverStop:"on",</p>
 <p>                        navOffsetHorizontal:0,
                    navOffsetVertical:20,</p>
 <p>                        shadow:2,
                    fullWidth:"off",</p>
 <p>                        stopLoop:"off",
                    stopAfterLoops:-1,
                    stopAtSlide:-1,</p>
 <p>                        shuffle:"off"
                });</p>
 <p>                }); //ready</p>
 <p>            </script></p>
 <p>                            <!-- END REVOLUTION SLIDER --></p>
4

3 回答 3

4

我曾经遇到过同样的问题,并且add_filter( 'the_content', 'wpautop')不适用于我的主题。所以我做了以下事情:

  1. revo 滑块管理区域中,选择显示不佳的滑块。

  2. 查找故障排除选项卡(右下),然后更改值

  3. Jquery 无冲突模式 = ON

  4. 将 JS 包含到正文 = FALSE

  5. 重要部分)输出滤波器保护=通过压缩输出

这样,脚本将仅在一行中,因此自动段落过滤器只会将 p 标签添加到单行

于 2013-11-12T07:54:44.403 回答
2

造成这种情况的一个常见原因是主题作者更改了主题中输出过滤器的优先级,甚至用他/她自己的替换了默认过滤器。因此,当您插入 Revolution Slider 短代码时,段落标签是围绕每一行输出的插入器,从而破坏了 Javascript 代码。Firefox 错误控制台中的常见消息是:

Error: SyntaxError: syntax error
Source Code:
</p> 

这是主题作者应该解决的主题问题。如果您想尝试自己修复它,请查找以下行:

add_filter( 'the_content', 'wpautop' , 99);

并将过滤器的优先级(99)更改为 9。这可能会有所帮助,但也会破坏其他东西。在某些主题中,代码并不完全一样,但您可以从简码输出中寻找添加或删除过滤器的函数。您可以在下面链接的页面中查看示例。

但是,在这样做之前,请尝试以下操作:Revolution Slider 的最新版本可以选择避免被过滤。创建滑块时,在疑难解答框中,有一个名为“输出过滤器保护”的选项。启用它(我使用了“通过回声输出”选项)。

这是某些 Wordpress 主题的已知问题。另请注意,如果主题影响了这个插件,它肯定会影响其他插件。

关于这个问题的一些评论发布在http://pippinsplugins.com/never-remove-the-default-the_content-filters-in-themes/http://theandystratton.com/2011/shortcode-autoformatting-html-带段落和换行符

从第一个链接(从不删除主题中的默认 the_content 过滤器):

主题开发人员有一种可怕的做法,即删除一些应用于帖子和页面内容的默认过滤器......

从第二个链接(带有段落和换行符的短代码自动格式化 HTML):

......我的短代码输出的这个神秘问题被神秘地自动格式化为段落标签和换行符......它正在全局删除 WP 内置的两个非常重要的核心内容过滤器......这使得这个主题完美地工作并且对具有短代码的任何和所有插件产生负面影响......

最终解决方案是第二篇文章中评论的那个:

不要使用其中包含糟糕代码的主题。

于 2013-01-31T08:35:02.670 回答
0

不要使用内联 JS - 使用register_script()wp_enqueue_script

function o99_load_my_scripts()  
{  
    // Register for a plugin:  
    wp_register_script( 'custom-script', plugins_url( '/js/my-custom-script.js', __FILE__ ) );  
    // or  
    // Register for a theme:  
    wp_register_script( 'custom-script', get_template_directory_uri() . '/js/my-custom-script.js' );  
    // then, you can then enqueue the script:  
    wp_enqueue_script( 'custom-script' );  
}  
add_action( 'wp_enqueue_scripts', 'o99_load_my_scripts' ); 
于 2012-12-13T02:58:55.283 回答