4

我正在使用在主页上有自定义产品循环的主题。除了主页上显示“隐藏”产品外,一切都很棒。我提供了一些代码来修复它,但不断收到 Parse 错误。

来自 index.php 的当前代码:

<?php if (of_get_option("cap_show_merch") == true){?>
    <?php //woocommerce check ?>
    <?php if (  in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) { ?>
        <h2><?php echo of_get_option("cap_merch_title"); ?></h2>
        <div class="preview-block">
            <?php
            global $product;
            $num = 0;
            $merch = new WP_Query( array(
            'posts_per_page' => 5,
            'post_type'      => array( 'product' )
            ) );

            if( $merch->have_posts() ) : while( $merch->have_posts() ) : $merch->the_post();
                $product = get_product();

                if ( $num == 0 ) : ?>
                    <div class="preview">
                        <div class="visual">
                            <?php if ( has_post_thumbnail() ) : ?>
                                <img src="<?php echo aq_resize( wp_get_attachment_url( get_post_thumbnail_id(), 'full' ), 473, 453, true );  ?>" width="473" height="453" alt="<?php the_title(); ?>" />
                            <?php else : ?>
                                <img src="<?php echo woocommerce_placeholder_img_src(); ?>" alt="Placeholder" />
                            <?php endif; ?>
                            <a href="<?php the_permalink(); ?>" class="mask"></a>
                            <?php woocommerce_template_loop_price(); ?>
                        </div>
                        <a href="<?php the_permalink(); ?>" class="caption"><?php the_title(); ?></a>
                    </div>
                <?php else : ?>
                    <?php if ( $num == 1 ) : ?>
                        <ul class="catalog">
                    <?php endif; ?>
                    <li>
                        <div class="visual">
                            <?php if ( has_post_thumbnail() ) : ?>
                                <img src="<?php echo aq_resize( wp_get_attachment_url( get_post_thumbnail_id(), 'full' ), 222, 193, true );  ?>" width="222" height="193" alt="<?php the_title(); ?>" />
                            <?php else : ?>
                                <img src="<?php echo woocommerce_placeholder_img_src(); ?>" alt="Placeholder" />
                            <?php endif; ?>
                            <a href="<?php the_permalink(); ?>" class="mask"></a>
                            <?php woocommerce_template_loop_price(); ?>
                        </div>
                        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                    </li>
                    <?php
                endif;
                $num++;
            endwhile;
            ?>
            </ul>
            <?php endif; wp_reset_postdata(); ?>
        </div><!--preview-block-->
    <?php } //woocommerce check?>
<?php } ?>

我在这里的 Wordpress 论坛中问过这个问题,并且我的 James Koster 提供了这个代码。

'meta_query' => array(
array(
'key' => '_visibility',
'value' => array( 'catalog', 'visible' ),
'compare' => 'IN'
)
)

当我将它添加到“'post_type' => array('product')”下的 php 中时,它看起来像这样;

<?php
            global $product;
            $num = 0;
            $merch = new WP_Query( array( 
            'posts_per_page' => 5,
            'post_type'      => array( 'product' )
            'meta_query' => array(
                            array(
                                'key' => '_visibility',
                                'value' => array( 'catalog', 'visible' ),
                                'compare' => 'IN'
            ))));

但这会返回错误;

“解析错误:语法错误,意外的 T_CONSTANT_ENCAPSED_STRING,在 /.../themes/destinlive/index.php 的第 116 行期待 ')'”

第 116 行是“ 'meta_query' => array(

我根本不精通 php,并且 James 没有详细说明将它放在哪里,(我很感谢您的帮助)让我花了几个小时尝试不同的配置,但无济于事。现在我转向这里寻求帮助。

预先感谢您的慷慨帮助。

4

1 回答 1

4

你后面少了一个逗号'post_type' => array( 'product' )

于 2013-08-21T12:13:32.210 回答