将两种不同类型的帖子拖放到同一页面上的不同HTML容器中

时间:2019-03-15 作者:The Chewy

如果我有两种不同的帖子类型,比如说,标准的WP帖子类型和自定义的帖子类型,那么如何将它们都拉到一个页面中,但拉到两个不同的HTML容器中呢?

例如,我希望在我的主页上显示一种带有标准帖子的帖子类型(我将此设置为显示前5篇帖子)

while(have_posts()){
  the_post(); ?>

// Pulls in standard WP posts

<?php } ?>
在另一个HTML容器中,有一个名为“features”的自定义帖子类型,它会引入一个“features”自定义帖子类型(也会显示此帖子类型的最新帖子)。

while(have_posts()){
  the_post(); ?>

// Pulls in the \'features\' custom post type

<?php } ?>
**注意-我知道如何在我的函数中设置CPT。php文件,这就是我将它们拉到我想知道的同一个页面的方式。

提前感谢您的建议。

Em公司

1 个回复
最合适的回答,由SO网友:Max Yudin 整理而成

Updated 10 hours later: 丰富了备选解决方案,并补充了意见。

<?php
/* ******* Built-in post type "Post" ******* */
$arguments_for_posts = array(
    \'numberposts\' => 1, // number of posts to get
    \'post_type\'   => \'post\' // post type
);

// get the array of post objects
$posts = get_posts( $arguments_for_posts );

// iterate through array to get individual posts
foreach( $posts as $post ) {
    // Enclosing block having unique ID
    echo \'<article id="post-\' . $post->ID . \'">\';
        // Post title (property of $post object)
        echo \'<h1>\' . $post->post_title . \'</h1>\';
        // Post content (property of $post object)
        echo $post->post_content;
    echo \'</article>\';
}

/* ******* Custom post type "Feature" ******* */
$arguments_for_features = array(
    \'numberposts\' => 1,
    \'post_type\'   => \'features\'
);

$features = get_posts( $arguments_for_features );

foreach( $features as $feature ) {
    echo \'<article id="feature-\' . $feature->ID . \'">\';
        echo \'<h1>\' . $feature->post_title . \'</h1>\';
        echo $feature->post_content;
    echo \'</article>\';
}
或者,当循环看起来更熟悉时,可以使用两个WP\\U查询:

<?php
/* ******* Built-in post type "Post" ******* */
// Arguments
$args = array(
    \'posts_per_page\' => 1,
    \'post_type\'      => \'post\',

);
// The query
$query_posts = new WP_Query( $args );

// The loop
while ( $query_posts->have_posts() ) {
    $query_posts->the_post();
?>
    <article id="post-<?php the_ID(); ?>">
        <h1><?php the_title(); ?></h1>
        <?php the_content(); ?>
    </article>
<?php
} // END while()

// Essential!
// Set the post data back up
wp_reset_postdata();

/* ******* Custom post type "Feature" ******* */
$args = array(
    \'posts_per_page\' => 1,
    \'post_type\'      => \'feature\',

);

$query_features = new WP_Query( $args );

while ( $query_features->have_posts() ) {
    $query_features->the_post();
?>
    <article id="feature-<?php the_ID(); ?>">
        <h1><?php the_title(); ?></h1>
        <?php the_content(); ?>
    </article>
<?php
} // END while()
?>
感谢@Qaisar Feroz提供的有用提醒。

有用的链接:

相关推荐