我正在尝试允许用户(使用Wordpress)基于虚假标记插入jquery幻灯片库(http://www.queness.com/resources/html/slideshow/jquery-slideshow.html)。例如:
[slideshow]
<img src="url" /><br />
<img src="url" />
[!slideshow]
会产生类似于
的东西<div id="gallery">
<a href="#"><img src="url" /></a><br />
<a href="#"><img src="url" /></a><br />
</div>
我认为我遇到问题的地方是jquery代码要求img用锚标记括起来。这就是我所拥有的,但多亏了Wordpress,代码上方或下方的任何内容都没有正确格式化。我已经使用了Wordpress格式化功能,但它在段落标记中包含了每一行,所以它只是打破了所有内容。
function make_slideshow($string) {
$patterns[0] = '/(\[\[slideshow\]\])/';
$patterns[1] = '/(\[\[\!slideshow\]\])/';
$replacements[0] = '<div id="gallery">';
$replacements[1] = '<div class="caption"><div class="content"></div></div></div>';
$replace = preg_replace($patterns, $replacements, $string);
$new_line = explode("\n", $replace);
foreach($new_line as $key => $value) {
if($value == "" || $value == " " || is_null($value)) {
unset($new_line[$key]);
}
}
$sorted_lines = array_values($new_line);
foreach($sorted_lines as $key => $value){
if( (stristr($value, 'href') === FALSE) && (stristr($value, 'img') !== FALSE) ){
$sorted_lines[$key] = '<a href="#">' . $value . '</a>';
}
if( (stristr($value, 'show') === FALSE) && ($key === 1) ){
$value = explode(" ", $value);
$value[0] .= ' class="show"';
$sorted_lines[$key] = implode(" ", $value);
}
}
返回$ sorted_lines;
};
通常我会在SO上找到所有其他答案,所以这只是我的第一个问题。我不知道其他人试图帮我解决这个问题是否太大了,但是我被卡住了所以我想我会试一试。
答案 0 :(得分:2)
Wordpress在编辑器中自动添加p标签;你需要阻止WP这样做。根据我的经验,您要么删除编辑器中的所有换行符 - 将代码搞砸 - 或使用一些插件,以阻止WP添加格式:TinyMCE Advanced和/或Disable wpautop。
答案 1 :(得分:0)
该代码中没有添加p标记的内容。如果这是问题所在,您需要找到将p添加为包装器的真实代码。
答案 2 :(得分:0)
什么WordPress函数调用你的例程?
我遇到了类似的问题:
<?php wp_list_pages( $args ); ?>
正在添加<ul>
链接到我想要压制的所有内容..
检查WP dev文档中的例程,该例程是例程中的一个层次结构,我打赌将有一个$arg
值来抑制<p>
标记。