我使用WCK自定义字段创建器创建了一个可重复的自定义字段,用于将成对图像(一种颜色,一种黑白)上载到帖子。因此,例如,一篇帖子可能有三个字段,两幅图像(一种颜色和一个bw)每个帖子总共有六幅图像。
我试图创建一个页面,为该特定类别中的每个帖子输出两个条目的第一个字段。
这是我现在拥有的代码,它可以吐出所有的图像对。我对PHP不太了解,无法解决如何修复此代码。
<ul class="campaign-gallery">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post();
$productimgs = get_post_meta( $post->ID, \'productimg\', true );
if (is_array($productimgs) & $productimgs != \'\' ) {
foreach($productimgs as $productimg) {
$image_color = wp_get_attachment_image_src( $productimg[\'product-image-color\'], \'grid-large\' );
$image_bw = wp_get_attachment_image_src( $productimg[\'product-image-bw\'], \'grid-large\' );
echo \'<li>\';
echo \'<img class="desat" src="\' . $image_bw[0] . \'" />\';
echo \'<img class="sat" src="\' . $image_color[0] . \'" />\';
echo \'</li>\';
}
}
?>
<?php endwhile; else: ?>
<p><?php _e(\'Sorry, no posts matched your criteria.\'); ?></p>
<?php endif; ?>
</ul>
我做了一个var\\u转储,看看
$productimgs
以下是我复制的可变输出:
array(3) {
[0]=> array(2) {
["product-image-bw"]=> string(3) "211"
["product-image-color"]=> string(3) "212" }
[1]=> array(2) {
["product-image-bw"]=> string(3) "214"
["product-image-color"]=> string(3) "215" }
[2]=> array(2) {
["product-image-bw"]=> string(3) "216"
["product-image-color"]=> string(3) "217" }
}
array(2) {
[0]=> array(2) {
["product-image-bw"]=> string(3) "253"
["product-image-color"]=> string(3) "254" }
[1]=> array(2) {
["product-image-bw"]=> string(3) "255"
["product-image-color"]=> string(3) "256" } }
array(3) {
[0]=> array(2) {
["product-image-bw"]=> string(3) "211"
["product-image-color"]=> string(3) "212" }
[1]=> array(2) {
["product-image-bw"]=> string(3) "214"
["product-image-color"]=> string(3) "215" }
[2]=> array(2) {
["product-image-bw"]=> string(3) "216"
["product-image-color"]=> string(3) "217" } }
最合适的回答,由SO网友:Colin 整理而成
下面是有效的代码。我必须摆脱foreach循环,直接引用数组:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post();
$productimgs = get_post_meta( $post->ID, \'productimg\', true );
$image_color = $productimgs[0][\'product-image-color\'];
$image_bw = $productimgs[0][\'product-image-bw\'];
$imgclr = wp_get_attachment_image_src( $image_color, \'grid-large\' );
$imgbw = wp_get_attachment_image_src( $image_bw, \'grid-large\' );
echo \'<li>\';
echo \'<a href="\' . get_permalink () . \'"><img class="desat" src="\' . $imgbw[0] . \'" />\';
echo \'<img class="sat" src="\' . $imgclr[0] . \'" /></a>\';
echo \'</li>\';
?>