Ottenere il contenuto di una pagina specifica (tramite ID)
Ho creato il seguente template per la front-page:
Al posto di quei grandi blocchi di Lorem Ipsum, ho bisogno di mostrare un "estratto" da una pagina specifica per riempire quella casella (un certo numero di caratteri).
Come posso ottenere il contenuto di una pagina in formato String in modo da poterlo visualizzare con echo e ridurlo a un certo numero di caratteri?
<?php
// visualizzerà il contenuto del post 7 fino al tag <!--more-->
$post_7 = get_post(7);
$excerpt = $post_7->post_excerpt;
echo $excerpt;
// otterrà l'intero contenuto del post 12 dopo il quale potrai
// manipolarlo con le tue preferenze di troncamento
$post_12 = get_post(12);
$trim_me = $post_12->post_content;
my_trim_function( $trim_me );
?>

Per favore, spiega cosa fa il codice e come risponde alla domanda. Alcuni utenti potrebbero non capire il codice senza una piccola spiegazione.

Mi piace molto il modo in cui hai aggiunto il filtro the_content
. +1 per quello.

$post = get_post( 42 );
$output = apply_filters( 'the_content', $post->post_content );
echo $output;
da https://developer.wordpress.org/reference/functions/get_post/

puoi usare questo codice, funziona bene sostituisci page_id=19 con il numero della tua pagina:
<?php $the_query = new WP_Query( 'page_id=19' ); ?>
<?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
<?php the_excerpt(); ?>
<?php endwhile;?>

Se sei all'interno del loop fai questo:
<?php
$my_excerpt = get_the_excerpt();
if ( $my_excerpt != '' ) {
// Viene eseguita qualche manipolazione di stringa
}
echo $my_excerpt; // Restituisce il valore elaborato alla pagina
Oppure se hai un ID, ottieni il post e poi usa la variabile membro post_excerpt
Esempio:
$post = get_post( $post_id );
echo $post->post_excerpt;

Prova questo codice e cambia semplicemente il tuo page_id
:
<?php $my_query = new WP_Query('page_id=20');
while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID;?>
<h3><?php the_title(); ?></h3>
<div class="text">
<?php echo wp_trim_words( get_the_content(), 15, '...' ); ?>
<a href="<?php echo get_page_link(); ?>" class="read-more">Leggi di più</a>
</div>
<?php endwhile; ?>

Puoi farlo con uno shortcode. Aggiungi il seguente codice a function.php
function lorem_func($attr) {
$txt = "<p>Lorem ipsum dolor .........</p>";
shortcode_atts(
array(
'repeat' => 1,
), $attr
);
return str_repeat($txt, $attr['repeat'] );
}
add_shortcode('lorem', 'lorem_func');
Per renderizzarlo all'interno del contenuto usa:
[lorem repeat="2"]
Basta modificare il testo "Lorem ipsum dolor ........." con la lunghezza desiderata. E il parametro repeat=2 può essere cambiato con la quantità di paragrafi richiesta. Nell'esempio sopra riportato, =2 significa 2 paragrafi, quindi è multifunzionale.
