2

過去 3 日間、次のコードを使用して、ループの外にある投稿の抜粋を取得しようとしました。

1) <?php the_excerpt(); ?>
2) the_excerpt();
3) <?php get_the_excerpt(); ?>
4) get_the_excerpt();
5) '.apply_filters('the_excerpt',get_the_excerpt()).'

上記のどれも機能しませんでした。ループの外で抜粋を取得しようとしているからだと思います。プラグインのページにある生成されたテキストもあれば、別の場所に配置したときにテーマを壊したものもあれば、まったく何もしなかったものもあります。ループの外側から抜粋を取得する方法をグーグルで検索しましたが、ほとんどの場合、抜粋を取得する を入力する必要がpost_idあります。

例外を出力する完全なコードを次に示します。抜粋が必要だと思う場所のdiv「抜粋」をリストしました:

private function cg_get_title($single) {
    global $cg_url;
    if($this->params['title']) {
        $title_array = get_post_meta($single->ID, $this->params['title']);
        $title = $title_array[0];
        if(!$title) {
            $title = $single->post_title;
        }
    }
    else {
        $title = $single->post_title;
    }
    $returnlink = ($this->params['lightbox']) ? ('"' . $cg_url . '/includes/CatGridPost.php?ID=' . $single->ID . '" class="cgpost"') : ('"' . get_permalink($single->ID)) . '"';
    $cgfontsize = $this->cg_get_font_size();
    $cgtitle = '<div class="cgback cgnojs ' . $this->params['showtitle'] . '"></div><div class="cgtitle cgnojs '
            . $this->params['showtitle'] . '"><p style="font-size:' . $cgfontsize . 'px;line-height:' . (1.2 * $cgfontsize) . 'px;">
            <a href=' . $returnlink . '>' . $title . '</a></p><DIV ID="EXCERPT">EXCERPT SHOULD GO HERE</DIV></div>';
    return $cgtitle;
}

繰り返しますが、この時点でどこに頼ればよいかよくわからないので、ここに来ました。このプラグインを使用して各投稿からの抜粋を表示するのを手伝ってくれる人はいますか?

4

2 に答える 2

4

$post->post_excerptpostオブジェクトがあると仮定すると、を使用してフィルタリングされていない投稿の抜粋を取得できます。上記のコードでは、次のように呼び出します。

$excerpt = apply_filters('get_the_excerpt', $single->post_excerpt);
于 2012-11-04T23:37:02.663 に答える
4

私は次の関数を使用しています。$post_id で投稿を取得します。管理者に抜粋が設定されている場合はそれを返し、そうでない場合は WordPress 関数を使用して生成します。この方法で作成された抜粋は WP 設定を尊重し、標準的な方法でループで作成された他の抜粋と同じスタイルになるため、気に入っています。

function my_excerpt($post_id) {
    $post = get_post($post_id);
    if ($post->post_excerpt) {
        // excerpt set, return it
        return apply_filters('the_excerpt', $the_post->post_excerpt);

    } else {
        setup_postdata( $post );
        $excerpt = get_the_excerpt();
        wp_reset_postdata();
        return $excerpt;
    }
}
于 2015-04-01T05:58:17.727 に答える