web-dev-qa-db-fra.com

get_the_content ("more ...") renvoie le texte intégral

Je crée un shortcode [latest_post] et souhaite afficher la date de publication, le titre et le contenu abrégé. (le contenu a "plus" de séparateur). Voici le code:

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");

Mais j'ai un problème avec la fonction "get_the_content". Il retourne le texte intégral au lieu du texte court et du lien.

Est-ce que quelqu'un peut m'aider s'il vous plaît?

Mise à jour:

Je suis trouvé une solution. Le code ci-dessus est mis à jour. - http://codex.wordpress.org/Customizing_the_Read_More#How_to_use_Read_More_in_Pages

1
sasa

get_the_content() fait ce qu'il est censé faire, obtient le contenu. Vous recherchez get_the_excerpt(). ;)

Alternativement, en utilisant ce que vous avez, il devrait couper chaque fois que vous mettez <!-- more --> dans votre message lorsque vous utilisez get_the_content().

1
Jared