web-dev-qa-db-ja.com

the_excerpt関数も画像を取得できますか?

Imが正しいやり方でこれをやるかどうかはわからないが、全体的に、私のホームページにはニュースボックスのようなものを作成するように言われたので、「最新ニュース」がこのクライアントの投稿になるでしょう。

今、私はthe_excerpts();のコンテンツの長さなどを制御できることを知っています、しかし、私はそれがまたイメージを許可するための方法を見つけることができないようです。

私がクライアントに「ニュースボックス」を見せたとき、彼は投稿に関連するどんな画像でも欲しいと思います。

だから私は"the_content();"を考えましたが、私はそれが私が必要としているものとは思わない

だから私のここでの主な質問は

  1. 抜粋とともに画像が表示されるようにすることはできますか。
  2. 抜粋関数で許可されていない場合は、何を使用できますか?
3
somdow

あなたのテーマが 投稿サムネイル をサポートしていること、そしてクライアントがそれぞれの投稿に "注目の画像"を設定していることを確認してください。次に、 the_excerpt()the_post_thumbnail() を組み合わせます。そのようです:

<?php
if ( have_posts() ) : while ( have_posts() ) : the_post();

    ?>
    <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

        <div class="featured-image"><?php the_post_thumbnail(); ?></div>
        <div class="post-excerpt"><?php the_excerpt(); ?></div>

    </div>
    <?php

endwhile; endif;
?>

それから、あなたの必要性に従ってスタイルを作るのにCSSを単に使ってください。

6
Chip Bennett

get_the_post_thumbnail()を使ってみましたか?あなたはそれについての詳細をここに コーデックスで読むことができます 。投稿のおすすめ画像のサムネイルを引きます。

2
SickHippie

これをあなたのfunctions.phpファイルに入れてください:

remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'preserve_excerpt_format');
function preserve_excerpt_format($text)
{
    global $post;
    $raw_excerpt = $text;
    if ('' == $text )
    {
        $text = get_the_content('');
        $text = strip_shortcodes($text);
        $text = apply_filters('the_content', $text);
        $text = str_replace(']]>', ']]&gt;', $text);

        $exceptions = '<p>,<a>,<em>,<strong>,<br><img>'; //PRESERVE THESE TAGS, ADD/REMOVE AS NEEDED
        $text = strip_tags($text, $exceptions);

        $maxCount = 55; //DEFAULT WP Word COUNT, INCREASE AS NEEDED
        $excerpt_length = apply_filters('excerpt_length', $maxCount);

        $moreText = '.... <a class="blue" href="'.get_permalink($post->ID).'">Read More &gt;&gt;</a>'; //CUSTOM MORE TEXT, CHANGE AS NEEDED
        $excerpt_more = apply_filters('excerpt_more', $moreText);

        $words = preg_split("/[\n\r\t ]+/", $text, $excerpt_length+1, PREG_SPLIT_NO_EMPTY);
        if(count($words) > $excerpt_length)
        {
            array_pop($words);
            $text = implode(' ', $words);
            $text = $text.$excerpt_more;
        }
        else
            $text = implode(' ', $words);
    }
    return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}

これにより、Wordの制限に達する前にコンテンツのHTML内に表示される画像はすべて保持されます。

0
maiorano84