WordPress自定义帖子类型查询

时间:2015-01-29 作者:trikutin

我正在使用自定义帖子类型,并将它们列在单-[自定义帖子类型]中。php?类型=示例

<?php if (have_posts()) : while(have_posts()) :  the_post();the_content(); endwhile; endif; ?>
现在我有两种不同的自定义帖子类型“customtype1”和“customtype2”。“customtype1”是“customtype2”的顶级类别。当我在“customtype2”上添加新帖子时,从metabox中选择类别(我有一个选择框,其中列出了“customtype1”帖子)在“customtype1”列表中。我的问题是如何使用查询列出属于顶级类别页面(single-customtype1.php)的customtype2帖子

2 个回复
最合适的回答,由SO网友:Howdy_McGee 整理而成

这一切都取决于您在post meta中实际保存的内容。如果您确实在保存ID,则可以在single-post_type.php

<?php if( have_posts() ) : ?>
    <?php while( have_posts() ) :
            the_post();
            $cpt2_meta = get_post_meta( $post->ID, \'_meta_name\', true ); // Get out Post Type 2 Meta
    ?>
        <?php the_content(); ?>
    <?php endwhile; ?>
<?php endif; ?>

<?php if( ! empty( $cpt2_meta ) ) :
    $cpt2_posts = new WP_Query( array( 
        \'post_type\' => \'cpt2_slug\',
        \'posts_per_page\' => -1,
    ) );

    if( $cpt2_posts->have_posts() ) : 
?>
    <?php while( $cpt2_posts->have_posts() ) : $cpt2_posts->the_post(); ?>
        <h1><?php the_title(); ?></h1>
    <?php endwhile;?>
  <?php endif; ?>

<?php endif; ?>
首先我们得到Post元(category),然后对该“category”运行二次查询。同样,这可能会根据您保存为post meta的内容而改变。有关更多信息,您可以read into WP_Query.

SO网友:trikutin

你可以这样使用

<?php 
$id = get_the_ID();
$squery = new WP_Query( array( 
    \'post_type\' => \'lyrics\',
    \'posts_per_page\' => -1,
    \'meta_key\' => \'your_meta_key\',
    \'meta_value\' => $id,
) );

if( $squery->have_posts() ) : ?>
<?php while( $squery->have_posts() ) : $squery->the_post(); ?>
    <h1><?php the_title(); ?></h1>
<?php endwhile;?>

结束

相关推荐