在主页上添加“博客的最新消息”

时间:2011-05-05 作者:Teekay

我有一个大问题,不知道如何解决:)我想在我的主页上添加一个“模块”(静态主页,而不是博客帖子),该模块将以非常特殊的方式显示最新的两篇博客帖子,并链接回它们。这些帖子将只显示在主页上,而不是每隔一页显示一次,但用于该页面的php模板将与所有自定义页面共享。

这是它的简图

Photo of a paper sketch

SEOmoz是一个在主页上做得很好的网站(但我不需要那么多功能,只需要博客标题、拇指、摘录和链接来阅读更多内容)

Screenshot from seomoz.org

有没有简单的方法可以做到这一点?(插件,可以从任何地方复制/粘贴的代码?)或者我可以付钱给别人帮我写这篇文章吗?

3 个回复
SO网友:Chip Bennett

就我个人而言,我喜欢使用get_posts() (Codex ref) 用于快速脏循环。

在您的front-page.php 模板文件,请尝试以下操作:

<?php

// Create a variable to hold our custom Loop results
$frontpageposts = get_posts( array( 
     \'numberposts\' => 2 // only the 2 latest posts
) );

// Create output only if we have results
// Customize to suit your HTML markup
if ( $frontpageposts ) { 

     foreach ( $frontpageposts as $fppost ) { 
          // setup postdata, so we can use template tags
          setup_postdata($fppost);
          ?>

          <div <?php post_class(); ?>>
               <h2><a href="<php the_permalink(); ?>"><?php the_title(); ?></a></h2>
               <div class="post-entry">
                    <?php the_post_thumbnail(); ?>
                    <?php the_excerpt(); ?>
               </div>
          </div>

<?php }
} 
?>
同样,您需要根据需要修改HTML标记。

SO网友:Fred Rocha

笔迹优美:)

这只需检查当前页面是否在主页上,并获取两篇最新的博客文章即可完成。

    <?php
        if ( is_home() ) {

            query_posts("posts_per_page=2");
        }

        // run the Loop

        if ( have_posts() ) : while ( have_posts() ) : the_post(); 

    ?>

<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>

<?php endwhile; ?>

<?php endif; ?>

这将显示链接到博客帖子本身的博客帖子标题。插入将获取所需信息的任何其他函数(例如,the\\u extract())。

您可以向查询中添加参数以使其更精确,例如,仅从特定类别检索帖子。

SO网友:Chadster_BAM

更简单的方法是在主题中创建一个page-x.php文件。X是要用作主页的页面的ID。这假设您具有FTP访问权限,因为您可以创建文件,因此必须具有FTP访问权限。例如,第2页。php将是用于默认WordPress示例页面的模板。但是你不能只使用if(have\\u posts()),因为你在一个页面上,这会调出你所在的页面内容。

最好使用WP\\u查询。

$news = new WP_Query( array(
                           \'category_name\'=>\'news\',
                           \'posts_per_page\' => 2
                           )
                    );

if ($news->have_posts()) while ($news->have_posts()) : the_post(); ?>
然后继续循环。如果你需要更多细节,请告诉我。我在哪里

\'category_name\' => \'news\'
“新闻”应更改为您类别中的SLUG。

结束