Wordpress:在索引页

时间:2017-09-16 17:00:20

标签: php wordpress wordpress-theming custom-wordpress-pages

我正在处理以二十七主题为主题的儿童主题,因为我想改变一些事情。 但是我在实现这个想法时遇到了问题:

我创建了一个名为' video'的自定义帖子类型但是在索引页面(index.php)上我想显示两种类型的帖子,默认的帖子类型和自定义视频'后期类型,按发布日期排序。

由于我非常喜欢index.php提供最新帖子的方式,因此我不想创建自定义存档(我想我必须保留get_template_part()函数)。我想做的就是在索引页面上显示两种帖子类型。

<?php if ( have_posts() ) : ?>
    <header class="page-header">
        <?php
            the_archive_title( '<h1 class="page-title">', '</h1>' );
            the_archive_description( '<div class="taxonomy-description">', '</div>' );
        ?>
    </header><!-- .page-header -->
<?php endif; ?>

<div id="primary" class="content-area">
    <main id="main" class="site-main" role="main">

    <?php
    if ( have_posts() ) : ?>
        <?php
        /* Start the Loop */
        while ( have_posts() ) : the_post();

            /*
             * Include the Post-Format-specific template for the content.
             * If you want to override this in a child theme, then include a file
             * called content-___.php (where ___ is the Post Format name) and that will be used instead.
             */
            get_template_part( 'template-parts/post/content', get_post_format() );

        endwhile;

        the_posts_pagination( array(
            'prev_text' => twentyseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '<span class="screen-reader-text">' . __( 'Previous page', 'twentyseventeen' ) . '</span>',
            'next_text' => '<span class="screen-reader-text">' . __( 'Next page', 'twentyseventeen' ) . '</span>' . twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ),
            'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'twentyseventeen' ) . ' </span>',
        ) );

    else :

        get_template_part( 'template-parts/post/content', 'none' );

    endif; ?>

我尝试了很多方法,但没有一个方法适合我的想法...... 必须有一种方法可以在wp查询中选择两种后期类型,并在索引页面上显示它们,按发布日期和默认内容模板排序。 喜欢选择get_post_format()函数的所有帖子(帖子和视频类型)(但我不是真正的PHP)

我很感激。

此致 马尔特

1 个答案:

答案 0 :(得分:2)

你可以这样做,在你的index.php

将以下代码放在要显示所有帖子标题和内容的位置。

<?php
$args = array(
        'post_type' => array( 'post', 'video' ),
        'orderby' => 'date',
    );
$my_query = new WP_Query( $args );

if( $my_query->have_posts() ) :
while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
    <div class="smal-sec">
        <h3><?php the_title();?></h3>
        <?php the_content();?>
    </div>
<?php
endwhile;
endif;
wp_reset_query();  // Restore global post data stomped by the_post().
?>

从这个循环中我们将能够获得所有帖子的默认帖子和&#34;视频&#34;自定义帖子类型。帖子将根据日期显示。