如何在主页中添加一些帖子并拥有博客页面?

时间:2017-10-28 11:53:37

标签: wordpress

我正在WP中构建自己的自定义主题。 在我的index.php中,我有许多静态内容(不知道如何将它们转换为WP中的动态字段,但我稍后会详细介绍)。

问题是,我想在首页2 posts中显示一些帖子,并在其下方显示一个链接,将用户重定向到显示整个帖子的blog页面。

我搜索了很多,但我发现了一个没有做我想要的解决方案,它是关于设置静态front-page并将blog页面设置为Posts page下的settings 1}}然后reading

执行此操作后,我index.php中的整个静态内容不会再显示在homepage上,而homepage会变为空白页面,整个内容会转到blog页面,让我疯狂!!

我想做的一切;是将static内容和2 of my most recent posts保留在homepage中,并创建一个包含整个帖子的blog页面。

希望为此无插件找到解决方案。

2 个答案:

答案 0 :(得分:1)

将此代码段添加到front-page.php或您要显示最近发布的 2 帖子的位置。此外还有博客页面链接可将用户导航到所有博客帖子。     

 $the_query = new WP_Query( array( 'post_type' => 'post',
                          'posts_per_page' => 2,
                          'orderby' => 'publish_date',
                          'order' => 'DESC'
                        )
                    );
 if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();
the_title();
    the_excerpt();
        the_author();
        // add whatever you want
   endwhile;
   wp_reset_postdata();
   echo 'See All Blog Posts Here : <a href='.site_url("blog").'>All Blog Posts</a>';
   else :
   esc_html_e( 'Sorry, no posts yet published.' );
   endif;
?>

答案 1 :(得分:0)

这将是我的问题的详细答案,以帮助任何可能面临同样问题的人,它将涵盖像我这样的WordPress新手的所有步骤! :d

正如我的问题所述,我的问题是我想在index.php中显示2个帖子,并在单独的blog页面中包含整个帖子。

最详细的解决方案:

1)转到index.php并使用正常的帖子循环:

<?php
    // The Loop
    if ( have_posts() ) {
        while ( have_posts() ) {
            the_post(); 
            //
            // Post Content here
            //
        } // end while
    } // end if
?>

2)从WP信息中心转到Settings然后Reading并将Blog pages show at most值更改为2个帖子或者您想要的任意数量的帖子。< / p>

现在,我们已完成第一步,并在index.php中仅显示特定数量的帖子,让我们继续显示blog中的所有帖子页。

3)创建一个名为page-blog.php的PHP页面。

注意:如果你没有page.php你必须创建它,有关如何创建自定义PHP页面的更多信息,我推荐@ Adam&#39 ;回答here

4)转到WP仪表板并创建一个名为blog的新页面。

5)在您的page-blog.php中,您需要添加以下代码段:

// Posts Query
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array('posts_per_page' => 6, 'paged' => $paged );
query_posts($args);

// The Loop
if ( have_posts() ) {
        while ( have_posts() ) {
            the_post(); 
            //
            // Post Content here
            //
        } // end while
} else {
    echo "Sorry, There is no posts to be displayed";
} // end if
?>

注意:我们在index.php中使用了与之前相同的循环,只有循环上方新的2行代码才是我们{{1页面

6)我将page-blog.php设置为6,因为它是我的posts_per_page页面,我想在那里显示更多帖子。 将其值设置为您想要的任何数字,这取决于您

7)BOOM,它有效,你就像我一样做了你想做的事情!

这个问题对我来说似乎非常复杂,但是当我搜索并阅读有关此问题的更多信息时,我发现解决问题非常容易,我希望如果您遇到这个问题,这个答案可以帮助您!