仅当自定义字段具有值时才显示自定义字段

时间:2011-09-23 作者:James Olney

这是正确的解决方案

<?php $meta_cat_name = get_post_meta( $post->ID, \'related blog articles\', true ); if( !empty( $meta_cat_name ) ): $my_query = new WP_Query( array( \'category_name\' => $meta_cat_name, \'posts_per_page\' => 5, ) ); if ( $my_query->have_posts() ): while ( $my_query->have_posts() ) : $my_query->the_post(); ?> <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a> <?php endwhile; endif; endif; wp_reset_query(); ?>
----以下原始请求和旧代码-----

由于我还没有找到一个能满足我需要的教程,我正在使用“更多字段”插件,以便在编辑帖子页面上添加部分填充的自定义字段/元框。

这些目录已经设置了键,因此用户只需输入一个值,在这种情况下,类别名称将显示该目录中的5篇文章。

除非在未输入值的情况下发布帖子,否则此操作正常。这会导致已发布的帖子也列出最近的5篇帖子。我认为这是因为它已经接到指示,有些东西正在那里,但只有一半的信息。

那么,如何使下面的代码块仅在输入值时显示?

谢谢

詹姆斯

<?php $my_query = new WP_Query(array(
\'category_name\'  => get_post_meta($post->ID, \'related blog articles\', true),
\'posts_per_page\' => 5,
)); if ($my_query->have_posts()):  ?>

<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>   
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a>

<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?> 

2 个回复
最合适的回答,由SO网友:Mohit Bumb 整理而成
            <?php
            $metacatname = get_post_meta( $post->ID, \'related blog articles\', true );

            if(!(empty( $metacatname ))):

                $my_query = new WP_Query( array(
                    \'category_name\'  => $meta_cat_name,
                    \'posts_per_page\' => 5,
                ) );

                if ( $my_query->have_posts() ):

                    while ( $my_query->have_posts() ) : $my_query->the_post(); ?>   
                        <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a>
            <?php
                    endwhile;

                endif;

            endif;

            wp_reset_query();
            ?>
SO网友:Milo

移动您的get_post_meta 在查询外部调用并首先检查其是否为空:

<?php
$meta_cat_name = get_post_meta( $post->ID, \'related blog articles\', true );

if( !empty( $meta_cat_name ) ):

    $my_query = new WP_Query( array(
        \'category_name\'  => $meta_cat_name,
        \'posts_per_page\' => 5,
    ) );

    if ( $my_query->have_posts() ):

        while ( $my_query->have_posts() ) : $my_query->the_post(); ?>   
            <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a>
        <?php endwhile;

    endif;

endif;

wp_reset_query();
?> 

结束

相关推荐