我想知道是否有人会知道为什么下面的代码最后会返回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>
答案 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的值。