如何在主页上用自定义的超文本标记语言显示最近的帖子

时间:2011-12-05 作者:Tyler Crompton

我想展示x (待定)我的主页上最近的帖子数(不超过10篇)。对于每篇文章,我想显示标题和内容片段。我可以自己创建一个SQL查询来获取此信息,但我想知道WordPress函数是如何获取此信息的。我得到的最接近的是<?php wp_get_archives(\'type=postbypost&limit=10&format=html\'); ?>. 我还想自定义HTML格式。我想要的输出示例如下所示

<div id="posts">
    <section class="post">
        <h2><a href="[post uri]">[post title]</a></h2>
        <p>[post snippet]</p>
    </section>
    <section class="post">
        <h2><a href="[post uri]">[post title]</a></h2>
        <p>[post snippet]</p>
    </section>
</div>

1 个回复
最合适的回答,由SO网友:Johannes Pille 整理而成

<div id="posts">

<?php

    // define query arguments
    $args = array(
        \'posts_per_page\' => 8, // your \'x\' goes here
        \'nopaging\' = true
        // possibly more arguments here
    );

    // set up new query
    $tyler_query = new WP_Query( $args );

    // loop through found posts
    while ( $tyler_query->have_posts() ) : $tyler_query->the_post();
        echo \'<section class="post">\'.
             \'<h2><a href="\'.
             get_permalink().
             \'">\'.
             get_the_title().
             \'</a></h2><p>\'.
             get_the_excerpt().
             \'</p></section>\';
    endwhile;

    // reset post data
    wp_reset_postdata();

?>

</div>
默认情况下,摘录长度为55个单词。对于自定义摘录长度,请在主题的函数中删除以下内容。php:

function tyler_excerpt_length( $length ) {
    return 70; // change number of words to your liking
}
add_filter( \'excerpt_length\', \'tyler_excerpt_length\' );
如果您对摘录末尾的默认“继续阅读”链接不满意,请将其放入函数中。php:

function tyler_excerpt_more( $more ) {
    return \'Read the whole post &gt;&gt;\'; // again, change to your liking
}
add_filter( \'excerpt_more\', \'tyler_excerpt_more\' );
如果由于标题中有post链接,因此希望不显示摘录的“more”链接,请让上面的函数返回一个空字符串,即。return \'\';.

进一步阅读:

结束

相关推荐

将数据库内容类型与PHP类型匹配

这个$wpdb 查询方法以字符串形式返回所有查询结果。例如,“ID”列将返回如下字符串值\'42\' 而不是整数42.是否有方法配置WP数据库类以使数据库内容类型与PHP types? 或者我是否需要像下面这样继续手动执行此操作?$results = $wpdb->get_results(\'SELECT * FROM my_table\'); foreach ($results as $result) { // All integer values