web-dev-qa-db-ja.com

全文を抜粋に置き換える

私のテーマはメインページに完全な投稿を表示していて、要約だけを表示したいのですが、テーマのindex.phpファイルでthe_contentタグを検索してみましたが、それもありません。
私はhome.phpもcategory.phpも持っていません。私はthe_contentのために私の全体のwordpressのインストールを検索してみました、そして、私がそれを見つけることができる唯一の場所はpage.phpにあります、そしてそれを変更するときでさえ、それは本当にうまくいきません。

他の場所では私のテーマフォーマット(image.php、audio.php ...)で見つけましたが、そこを変更するとクリックして投稿の中に入っても投稿は要約を表示します。

私のindex.phpファイルはこれを持っています:

<?php if (have_posts()) : while (have_posts()) : the_post(); $format = get_post_format();  ?>

  <?php if($format == ''): ?>

    <?php get_template_part('library/functions/theme/formats/standar'); ?>


  <?php else: ?>

    <?php get_template_part('library/functions/theme/formats/'.$format); ?>

  <?php endif; ?>

<?php endwhile ?>

これを機能させるためには、そこで特別なことをする必要がありますか?

1
hyperexpert

the_excerpt()またはthe_content()については、条件付きis_singular()で決定します。

現在のページのタイプ(アーカイブまたは単数形)に応じて、 プラグイン を使用してthe_contentをフィルタできます。しかし、あなたはあなたのテーマにもそれを使うことができます。

add_filter( 'the_content', 't5_replace_content_with_excerpt', 100 );

/**
 * Return excerpt if we are not on a singular post view.
 *
 * @param  string $content
 * @return string
 */
function t5_replace_content_with_excerpt( $content )
{
    if ( is_singular() )
    {
        return $content;
    }
    // remove our filter temporarily.
    // Otherwise we run into a infinite loop in wp_trim_excerpt().
    remove_filter( 'the_content', __FUNCTION__, 100 );
    $excerpt = apply_filters( 'the_excerpt', get_the_excerpt() );
    add_filter( 'the_content', __FUNCTION__, 100 );
    return $excerpt;
}

あなたのテーマの中でthe_content()を呼んでいる行を見つけてください。次のように変更してください。

is_singular() ? the_content() : the_excerpt();
4
fuxia

どんなテーマで働いていますか?

このコードはここにあります:

<?php get_template_part('library/functions/theme/formats/standar'); ?>

あなたのindex.phpがテンプレートインクルードを呼び出していることを示唆しているようです。正しいファイルを見つけ(そのフォーマット/ standarディレクトリにある可能性が最も高い)、the_content()が表示されている場所をthe_excerpt()で置き換えれば、サマリー全体がロードされるのではなくロードされます。これは推奨されないコアテーマファイルを修正しようとしているので、あなたのテーマについての詳細やこれが上書き可能であるかどうかを知らずに私はあなた自身の責任でそれをすると言うでしょう。

0
jhoffmcd