web-dev-qa-db-ja.com

get_the_content( "more ...")は全文を返します

私はショートコード[latest_post]を作成しています。投稿日、タイトル、ショートコンテンツを表示したいです。 (コンテンツには "more"区切り文字があります)。これがコードです:

function shortcode_latest_post() {
    global $post, $more;
    $tmp_post = $post;
    $tmp_more = $more;

    $posts = get_posts(array('numberposts' => 1, 'post_status' => 'publish'));

    $output = "";
    foreach($posts as $post) {
        setup_postdata($post);
        $more = 0;
        $output .= '<div class="latest_post">';
        $output .= '<span class="date">'. get_the_date() . '</span>';
        $output .= '<h3><a href="'. get_permalink() .'">'. get_the_title() .'</a></h3>';
        $output .= get_the_content("Read more...");
        $output .= "</div>";
    }
    $post = $tmp_post;
    $more = $tmp_more;
    return $output;
}
add_shortcode("latest_post", "shortcode_latest_post");

しかし、私は "get_the_content"関数に問題があります。これは、短いテキストと詳細なリンクの代わりにフルテキストコンテンツを返します。

誰かが私を助けてもらえますか?

更新:

解決策が見つかりました。上記のコードが更新されました。 - http://codex.wordpress.org/Customizing_the_Read_More#How_to_use_Read_More_in_Pages

1
sasa

get_the_content()は想定通りのことをして、コンテンツを取得します。あなたはget_the_excerpt()を探しています。 ;)

あるいは、get_the_content()を使うとき、あなたが持っているものを使って、あなたがあなたの投稿の中で<!-- more -->を入れたところはどこでも切り取るべきです。

1
Jared