私は自分のカスタムデザインのテーマのためのフロント/ランディングページのカスタマイズに苦労しています。私はカスタムテーマをデザインし、アンダースコアボイラープレートを使ってそれをコーディングしました。
私が理解しているように、コーデックスは私がfront-page.phpを作成しそしてそこでそれをカスタマイズすることを示唆している。 setting> readingで静的/フロントページ(静的歓迎メッセージを変更したいページ)を選択しました。その下に、サムネイル(私の機能で有効になっているもの)と抜粋付きの最近の投稿が3〜5個必要です。
私のfront-page.php:
<main id="main" class="site-main" role="main">
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', 'page' ); ?>
<?php endwhile; // end of the loop. ?>
<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>
</main><!-- #main -->
これは動作しますが、サムネイルと抜粋を読み込む方法がわかりません。最も重要なことはこれは正しいですか?
カスタムクエリの場合は、 wp_get_recent_posts
または get_posts
さえ使用しないようにします。このような。デフォルトでは、the_excerpt()
のようなテンプレートタグはこれらの関数では利用できません。そしてこれらのテンプレートタグにアクセスするためには setup_postdata($post)
を利用する必要があります。
私は個人的には WP_Query
を使用することにしました。これはより柔軟です。特に、ページ付けが必要なカスタムクエリがある場合はそうです。
これは最新の5つの投稿を得るためのカスタムクエリの例です。注:HTMLマークアップは含まれていません。利用可能なすべての引数のリストについては、私がWP_Query
で提供したリンクを調べてください。
$args = array(
'posts_per_page' => 5,
'order' => 'DESC'
);
$rp = new WP_Query( $args );
if($rp->have_posts()) :
while($rp->have_posts()) : $rp->the_post();
the_title(); // posttitle
if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
the_post_thumbnail(); //display the thumbnail
}
the_excerpt(); // displays the excerpt
endwhile;
wp_reset_postdata(); // always always remember to reset postdata when using a custom query, very important
endif;
さらに読むために:
ループ (ここでちょっと注意してください、いくつかの例では query_posts
を使っています。カスタムクエリを作成するためにWP_Query
を使用してください。
あなたが使用することができます:
get_the_post_thumbnail($recent['ID'], 'post-thumbnail');
サムネイルを取得するために。残念ながら、抜粋を取得する方法はありませんが、PHPを使用してコンテンツをトリミングすることはできます。
あるいは、私が今まで使ったことのないフックがあります。試してみると、その抜粋のための作品を見ることができます。
get_post_field();
このコードを使用して画像を取得することができます。$src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'medium', false, '' ); $thumbnailSrc = $src[0];
ここで、 'medium'はサムネイルのサイズです。これは次のように変更できます。 サムネイル、大きいまたは特別なサイズ functions.php ejのサムネイルをサポートして作成されました。add_image_size( 'postslider', 680,310, true );
img src="php echo $src; ?
で画像を印刷しています。コード内にphpタグを含めることを忘れないでください
抜粋の簡単な方法はthe_content();の代わりにthe_excerpt();です。
前の2つの答えがあなたに近づくように見えますが、私が理解しているように、カスタムクエリの後、foreach
ループを2番目のwordpressループ呼び出しに変更する必要があるかもしれません(例 ここ 「例」セクション):
wordpressループを使用することをお勧めする理由は、関数the_excerpt()
は標準のループフレームワーク内でのみ機能するためです。 「ループ」内にいる場合は、使用します
the_post_thumbnail( 'your-custom-post-size-here' );
のではなく
get_the_post_thumbnail
yusri Mathewsが示唆するように。あなたのforeach
ループのような場合、彼の答えは「ループ」の外側で機能します。
ただし、上記のように、「ループ」にいる場合は、the_excerpt()
にアクセスして、目的地に行くことができます。