Wordpress Shortcode返回1号?如何删除?

时间:2016-10-11 08:17:05

标签: php wordpress function shortcode

我想知道是否有人会知道为什么下面的代码最后会返回1号?有谁知道如何阻止这种情况发生?

function get_product_images_slider() {
$product_image_output = include( get_stylesheet_directory() . '/product-images-shortcode.php');
return $product_image_output;
}
add_shortcode( 'product-images', 'get_product_images_slider' );

我在include中的代码是:

                         <ul class="slick  js-fader">
                            <li>
                                <?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' );?>
                                <img src="<?php echo $image[0]; ?>" class="figure" width="425" height="328" itemprop="image" />
                            </li>
                            <?php
                                global $product;
                                $attachment_ids = $product->get_gallery_attachment_ids();

                                foreach( $attachment_ids as $attachment_id ) 
                                { ?>
                                    <li>
                                        <?php
                                            echo wp_get_attachment_image($attachment_id, 'product-image', '', array( "class" => "figure", 'width' => '425', 'height' => '328', 'itemprop' => 'image' ) );
                                        ?>
                                    </li>
                            <?php }
                            ?>
                        </ul>

1 个答案:

答案 0 :(得分:1)

如果包含成功,include function始终返回第一个,并且您将此值分配给变量。你最后会返回这个变量。你期望输出什么?

编辑:以下是您需要使用的代码:

产品图像-shortcode.php

<?php function productShortcode() { ?>
     <ul class="slick js-fader">
         <li>
             <?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' );?>
             <img src="<?php echo $image[0]; ?>" class="figure" width="425" height="328" itemprop="image" />
        </li>
        <?php
        global $product;
        $attachment_ids = $product->get_gallery_attachment_ids();
        foreach( $attachment_ids as $attachment_id ) 
        { ?>
            <li>
                <?php
                echo wp_get_attachment_image($attachment_id, 'product-image', '', array( "class" => "figure", 'width' => '425', 'height' => '328', 'itemprop' => 'image' ) );
                ?>
            </li>
        <?php
        } ?>
    </ul>
<?php } ?>

的functions.php

function get_product_images_slider() {
    include( get_stylesheet_directory() . '/product-images-shortcode.php');
    return productShortcode();
}
add_shortcode( 'product-images', 'get_product_images_slider' );

因此,我们使用的是include中的代码,而不是直接返回incude的值。