静态主页上的最新帖子

时间:2013-02-12 作者:user27348

我想在我的wordpress网站上有一个静态主页,我已经设置好了,上面有一些内容,下一步是我想在内容下面有5篇最近的帖子。作为一个普通页面,这没有问题,只要我将页面设置为静态主页,帖子就会消失。

通过数小时的搜索,我意识到我需要在模板中使用“多个循环”,我找到了一些示例,并尝试在模板中实现它们,但没有成功。我想我有足够的代码来完成最近的帖子,但是我想我在标记和模板标签来实际显示帖子时遇到了困难。

我希望这不是太复杂而难以理解,我真的很感谢任何帮助,我已经在这两天没有任何进展。我可以提供模板或其他任何东西所需的任何代码。

我的网站-www.completemuscleandfitness.com

好的,这就是我目前所知道的

<?php
$args = array( \'numberposts\' => \'5\' );
$recent_posts = wp_get_recent_posts( $args );

foreach( $recent_posts as $recent ){
echo \'<li><a href="\' . get_permalink($recent["ID"]) . \'" title="Look \'.esc_attr($recent["post_title"]).\'" >\' .   $recent["post_title"].\'</a> </li> \';
}       
这表明了这一点——www.completemuscleandfitness。com公司

我怎样才能让它看起来像其他帖子页面一样漂亮?

3 个回复
SO网友:Mike Madern

首先,欢迎!

我猜你用的是这个文件front-page.php 用于显示主页
您要做的是将以下代码添加到front-page.php:

<h2>Recent Posts</h2>
<ul>
<?php
    $args = array( \'numberposts\' => \'5\' );
    $recent_posts = wp_get_recent_posts( $args );

    foreach( $recent_posts as $recent ){
        echo \'<li><a href="\' . get_permalink($recent["ID"]) . \'" title="Look \'.esc_attr($recent["post_title"]).\'" >\' .   $recent["post_title"].\'</a> </li> \';
    }
?>
</ul>

More information about wp_get_recent_posts() can be found here.

您的模板文件如下所示:

<div id="main">
    <div class="new_post">
        ...
    </div>                                  
</div>
您可以尝试将此代码放入<div id="main"> 就在结束标记之前</div>:

<div id="main">
    <div class="new_post">
        ...
    </div>
    <h2>Recent Posts</h2>
    <ul>
    <?php
        $args = array( \'numberposts\' => \'5\' );
        $recent_posts = wp_get_recent_posts( $args );

        foreach( $recent_posts as $recent ){
            echo \'<li><a href="\' . get_permalink($recent["ID"]) . \'" title="Look \'.esc_attr($recent["post_title"]).\'" >\' .   $recent["post_title"].\'</a> </li> \';
        }
    ?>
    </ul>                               
</div>

SO网友:Rohit Pande

您可以创建自己的自定义主页模板,与index.php 在活动主题目录中。

在该文件中,您可以创建自己的自定义查询并遍历结果。

例如:。

<h2>Recent Posts</h2>
<ul>
<?php
    $query = new WP_Query( array ( \'orderby\' => \'date\', \'order\' => \'DESC\' ) );

    while ( $query->have_posts() ) :
    $query->the_post();
    echo \'<li>\' . get_the_title() . \'</li>\';
endwhile;
?>
</ul>
这可以看作是一个示例实现。你可以根据需要更进一步。

例如:。

    <?php 

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

// The Loop
while ( $the_query->have_posts() ) :
    $the_query->the_post();
    echo \'<li>\' . get_the_title() . \'</li>\';
endwhile;

/* Restore original Post Data 
 * NB: Because we are using new WP_Query we aren\'t stomping on the 
 * original $wp_query and it does not need to be reset.
*/
wp_reset_postdata();


/* The 2nd Query (without global var) */
$query2 = new WP_Query( $args2 );

// The 2nd Loop
while( $query2->have_posts() ):
    $query2->next_post();
    echo \'<li>\' . get_the_title( $query2->post->ID ) . \'</li>\';
endwhile;

// Restore original Post Data
wp_reset_postdata();

 ?>
您可以获得更多信息here. 有关查询的多个参数,请参阅this.

SO网友:Neil from Ohio

除非我遗漏了什么,否则我认为你们都太努力了。

在我看来,“最近的帖子”小部件应该是您所需要的全部。

示例:

http://wordpresstest.hjcs.org

“最近的新闻”是“最近的帖子”小部件。

(这个网站仍在建设中——这就是我在子域中进行“测试”的原因。)

结束

相关推荐

Using has_tag() outside loop

我想检查下一篇文章是否有特定的标签。我尝试了以下代码,但不起作用,因为has_tag() 仅在循环中有效。我想在循环之外使用它。<?php if ( has_tag( \'mario\', $post->ID ) ) : ?> my content <?php endif; ?> 下面的代码列出了post中的标记,但我不知道如何使用if() / else() 条件:global $post; foreach ( get_the_tags( $