web-dev-qa-db-ja.com

投稿ページ - 抜粋の長さ

次の例を実行するために投稿ページでwordpressを入手することは可能ですか?.

最初の3つの投稿には、タイトルボックスの幅と長い抜粋にまたがる大きな画像が必要です。

残りの投稿はより細くする必要があり、小さい機能の画像は左に浮かんでいました。

テンプレートやループでこれを変更するにはどうすればよいでしょうか。

3
James B

まず、 excerpt_length をフィルタリングする必要があります。

デフォルトの抜粋長を50語にするとします。

<?php
function wpse53485_filter_excerpt_length( $length ) {
    return 50;
}
add_filter( 'excerpt_length', 'wpse53485_filter_excerpt_length' );
?>

それはすべての50語の抜粋になります。それが最初に動作することを確認してください最初に

次に、適切な条件を追加して、投稿の静的ページに異なる抜粋長を使用します。カスタムページテンプレート名前付きtemplate-posts.phpを使用すると仮定すると、 is_page_template() を使用して、そのページテンプレートに限定してフィルタリングできます。

投稿のページに抜粋の長さ100語を使用するとします。

<?php
function wpse53485_filter_excerpt_length( $length ) {
    if ( is_page_template( 'template-posts.php' ) ) {
        return 100;
    } else {
        return 50;
    }
}
add_filter( 'excerpt_length', 'wpse53485_filter_excerpt_length' );
?>

このアプローチを使用すると、さまざまなコンテキストに基づいて任意の数の抜粋長を条件付きで返すことができます。

3
Chip Bennett

あなたのループはどうですか?最初の3本のポスト用と残りの2本のループ用の2つのループがありますか。 1つのループがあり、カウンターで別のマークアップを割り当てますか?より多くの情報を持っていなくても、抜粋を修正するために私があなたに与えることができるすべてはこれです:

これをあなたのfunctions.phpファイルに貼り付けてください

function dp_clean($excerpt, $substr=0) {
    $string = strip_tags(str_replace('[...]', '...', $excerpt));
    if ($substr>0) {
        $string = substr($string, 0, $substr);
    }
    return $string;
}

そして、これを使う<?php echo dp_clean($post->post_content, 250); ?>

あなたのニーズに合うように250をある値に変更してください

0
user16562