web-dev-qa-db-fra.com

faire un extrait sur les données d'une méta-boîte?

J'ai créé un type de message personnalisé appelé news qui contient des boîtes de méta. Je voudrais imprimer les données de la metabox sous forme d’extrait. Comment puis je faire ça?

C'est le code que j'utilise qui imprime les données:

<?php $loop = new WP_Query( array( 'post_type' => 'news', 'posts_per_page' => 10, 'post_parent' => 0 ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
<?php the_excerpt(); ?> 
    <p><?php echo get_post_meta( $post->ID, 'twpb_news_textdate', true ); ?></p>
    <p><?php echo get_post_meta( $post->ID, 'twpb_news_rub', true ); ?></p>
    <p><?php echo get_post_meta( $post->ID, 'twpb_news_textnews', true ); ?></p>

<?php endwhile; ?>
2
EMma

Vous pouvez utiliser wp_trim_words :

<p><?php
    echo wp_trim_words(
        get_post_meta( $post->ID, 'twpb_news_textnews', true ),
        55,
        '[&hellip;]'
    );
?></p>

Ou, si vous souhaitez que les filtres applicables aux extraits normaux soient également utilisés, écrivez votre propre wrapper pour cela:

function wpse115106_news_excerpt( $text = '' ) {
    $excerpt_length = apply_filters( 'excerpt_length', 55 );
    $excerpt_more = apply_filters( 'excerpt_more', ' ' . '[&hellip;]' );

    return wp_trim_words( $text, $excerpt_length, $excerpt_more );
}

et ensuite utiliser

<p><?php
    echo wpse115106_news_excerpt( get_post_meta( $post->ID, 'twpb_news_textnews', true ) );
?></p>

dans ta boucle.

2
Johannes Pille