在主页上显示来自多个页面(而不是帖子)的内容

时间:2018-10-20 作者:Nick J.

在我的主页上,我想显示几个页面的标题和内容(关于页面、联系人页面等)。看起来可以使用模板标记get\\u post,但我对PHP的理解还不够。

我找到了下面的代码片段,它可以正常工作。

<?php $id = 17; $post = get_page($id); $content = apply_filters(\'the_content\', $post->post_content); $title = $post->post_title; echo \'<h3>\'; echo $title; echo \'</h3>\'; echo $content; ?>

3 个回复
SO网友:Alt C

您可以使用下面的查询按id或页面段塞从特定页面获取内容

// WP_Query arguments
$args = array(
    \'page_id\'                => \'12,14,78,89\',//replace the page ids
    //\'pagename\'               => \'aboutus, contact\', //or use page slugs
    \'post_type\'              => array( \'page\' ),
    \'post_status\'            => array( \'publish\' ),
    \'posts_per_page\'         => \'10\',
);

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

// The Loop
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        echo \'<h3>\';
        echo $the_title; 
        echo \'</h3>\';
        echo $the_content;
    }
} else {
    // no posts found
}

// Restore original Post Data
wp_reset_postdata();

SO网友:Nick J.

根据Latheesh的指导,我想出了一个可行的解决方案。我必须创建一个父页面,并将我想要显示为父46的子页面:

<?php
    $args = array(
        \'post_parent\'            => \'46\',
        \'post_type\'              => \'page\',
        \'order\'                  => \'ASC\'
    );
    $the_query = new WP_Query( $args );
    if ( $the_query->have_posts() ) {
        echo \'<section class="page-content">\';
        while ( $the_query->have_posts() ) {
            $the_query->the_post();
            echo \'<h2>\' . get_the_title() . \'</h2>\';
            echo get_the_content();
        }
        echo \'</section>\';
    } else {
        // no posts found
    }
    wp_reset_postdata();
?>

SO网友:Nick J.

我还发现了这个答案,我更喜欢这个答案,因为我能够使用标准模板标记调用信息:

<?php
global $post;
$args = array(
        \'post_parent\'            => \'46\',
        \'post_type\'              => \'page\',
        \'order\'                  => \'ASC\'
    );
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
    <section class="page-content">
        <h2><?php the_title(); ?></h2>
        <?php the_content(); ?>
    </section>
<?php endforeach; 
wp_reset_postdata();?>

结束

相关推荐