我正在努力减少自己的一些工作,我希望有人知道这是否可行。
这些是设置在滑块中的图像,该滑块在多页文章的下一张幻灯片上显示图像上的文本覆盖。
这就是我想做的。拿着这个:
<h2>Image Title</h2>
[caption]<img src="http">[/caption]
text for slide
并按如下方式输出:
<div class="singe_slide">
<h2>Image Title</h2>
[caption]<img src="http">[/caption]
</div>
<!--nextpage-->
<div class="singe_slide">
<h2>Image Title</h2> //Same Image Next Page
[caption]<img src="http">[/caption]
<div class="slide_caption"><div class="captExt">
text for slide
</div></div>
<!--nextpage-->
这是我目前使用的短代码,但手动添加div需要同样长的时间,而且非常混乱。看起来是这样的:
[Slide]<h2>Image Title</h2>
[caption]<img src="http">[/caption][/Slide]
<!--nextpage-->
[Slide]<h2>Image Title</h2> //Same Image Next Page
[caption]<img src="http">[/caption]
[SlideCap]text for slide[/SlideCap][/Slide]
<!--nextpage-->
以下是我的两个短代码:
function Slide($atts, $content = null) {
$content = wpautop(trim($content));
return \'<div class="singe_slide">\' . do_shortcode($content) . \'</div>\';
}
add_shortcode(\'Slide\', \'Slide\');
function SlideCap($atts, $content = null) {
$content = wpautop(trim($content));
return \'<div class="slide_caption"><div class="captExt">\' . do_shortcode($content) . \'</div></div>\';
}
add_shortcode(\'SlideCap\', \'SlideCap\');
我愿意接受关于更简单方法的建议。这是我的第一个短代码,所以我是新手。
是否有可能在短代码之间获取某个变量?这里是这部分
SO网友:AntonChanning
好吧,我想我已经知道你在问什么了。您要问的是,短代码之间的位的变量是什么。如果这就是你要问的,那么答案就是参数变量$content
. 您已经在代码中处理了它。
另外,在您的示例中,您似乎有第三个短代码,[caption]
您没有处理的。这是故意的吗?看起来您并不是真的想在中生成最终的html,所以此解决方案假设您不想这样。
我假设您想要的是一种简单易用的短代码格式,例如:
[slide=ImageTitle][slideimg]http://some.domain/slide.jpg[/slideimg][slidecap]This is the caption.[/slidecap][/slide]
然后,您可以通过如下方式简单地调整功能来处理:
function shortcode_slide($atts, $content = null) {
if(empty($atts)) {
$img_title=\'\';
} else {
// [slide=Title]...[/slide]
// [slide="Multi word title"]...[/slide]
$atts = $this->attributefix( $atts );
$img_title = \'<h2>\'.trim(array_shift($atts),\'="\').\'</h2>\'; //Remove quotes and equals.
}
$content = wpautop(trim($content));
return \'<div class="singe_slide">\'.$img_title. do_shortcode($content) . \'</div>\';
}
add_shortcode(\'slide\', \'shortcode_slide\');
function shortcode_slidecap($atts, $content = null) {
$content = wpautop(trim($content));
return \'<div class="slide_caption"><div class="captExt">\' . do_shortcode($content) . \'</div></div>\';
}
add_shortcode(\'slidecap\', \'shortcode_slidecap\');
function shortcode_slideimg($atts, $content = null) {
$content = wpautop(trim($content));
return \'<img src="\'.$content.\'" />\';
}
add_shortcode(\'slideimg\', \'shortcode_slideimg\');
这将生成可工作的html。