私は自分のホームページに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>
<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語です。カスタムの抜粋の長さについては、テーマのfunctions.phpに以下をドロップしてください。
function tyler_excerpt_length( $length ) {
return 70; // change number of words to your liking
}
add_filter( 'excerpt_length', 'tyler_excerpt_length' );
抜粋の最後にあるデフォルトの「続きを読む」リンクに満足していない場合は、これをfunctions.phpにドロップしてください。
function tyler_excerpt_more( $more ) {
return 'Read the whole post >>'; // again, change to your liking
}
add_filter( 'excerpt_more', 'tyler_excerpt_more' );
タイトルにpostリンクがあるので、抜粋の「more」リンクを表示したくない場合は、上記の関数に空の文字列、つまりreturn '';
を返させます。
参考文献: