无法从帖子中获取短信码,以便在Wordpress主题中显示

时间:2015-12-18 13:28:19

标签: php wordpress

我已经为wordpress创建了一个自定义主题,并且我正在尝试将旋转木马添加到首页,我能够添加旋转木马,当我对图像进行硬编码时,它们都能正常工作。我现在要做的是什么是使用页面内容中的短代码制作图像模块。

我现在要做的是从管理仪表板中的页面内容设置图像src,如下所示:

<div id="img-carousel" class="carousel slide" data-ride="carousel">
    <ol class="carousel-indicators">
        <li data-target="#img-carousel" data-slide-to="0" class="active"></li>
        <li data-target="#img-carousel" data-slide-to="1"></li>

        <?php if( shortcode_exists( 'carousel-img3' ) && !empty( do_shortcode( '[carousel-img3]' ) ) ) { ?>
        <li data-target="#img-carousel" data-slide-to="2"></li>
        <?php } ?>

    </ol>
    <div class="carousel-inner" role="listbox">
        <div class="item active">
            <img src="http://placehold.it/1903x647" alt="item0">
        </div>
        <div class="item">
            <img src="http://placehold.it/1903x647" alt="item1">
        </div>

        <?php if( shortcode_exists( 'carousel-img3' ) && !empty( do_shortcode( '[carousel-img3]' ) ) ) { ?>
        <div class="item">
            <img src="<?php echo do_shortcode( '[carousel-img3]' ); ?>" alt="item2">
        </div>
        <?php } ?>
    </div>
</div>

我的短码功能如下:

function carousel_img3_func( $params = null, $content ) {
    return $content;
}
add_shortcode( 'carousel-img3', 'carousel_img3_func' );

我的页面在wordpress admin

中看起来像这样
[carousel-img3]http://placehold.it/1903x647[/carousel-img3]

当我查看页面时,没有显示任何内容,然后我将do_shortcode()更改为以下

do_shortcode( '[carousel-img3]http://placehold.it/1903x647[/carousel-img3]' )

这会将图像添加到旋转木马中并显示在旋转木马中。无论如何,我可以让它直接从页面中提取短代码信息,并能够在将来添加更多短代码,以添加更多图像。 e.g。

[carousel-img3]http://placehold.it/1903x647[/carousel-img3]
[carousel-img4]http://placehold.it/1903x647[/carousel-img4]

2 个答案:

答案 0 :(得分:0)

也许您应该将结构更改为:

//[carousel images="foo.jpg,bar.jpg"]
function carousel_func( $atts ) {
    $ouptput = "";
    $images = explode(",",$atts['images'];
    foreach($images as $image){
        $output .= "<div class='item'><img src='" . $image . "' /></div>";
    }
    return $output
}
add_shortcode( 'carousel', 'carousel_func' );

答案 1 :(得分:0)

使用短代码不是编辑主题的正确方法,而应使用主题选项页面。我使用Wordpress codex https://codex.wordpress.org/Creating_Options_Pages

完成了这项工作