Obține conținutul unei pagini specifice (după ID)
Am următorul șablon pentru prima pagină creat:
În locul acelor blocuri mari de Lorem Ipsum, trebuie să afișez un "fragment" dintr-o pagină specifică pentru a umple acea casetă (un anumit număr de caractere).
Cum pot obține conținutul unei pagini în format String astfel încât să-l pot afișa și trunchia la un anumit număr de caractere?
<?php
// va afișa conținutul postării 7 până la tag-ul <!--more-->
$post_7 = get_post(7);
$excerpt = $post_7->post_excerpt;
echo $excerpt;
// va obține întregul conținut al postării 12 după care
// îl puteți manipula conform preferințelor dvs. de tăiere
$post_12 = get_post(12);
$trim_me = $post_12->post_content;
my_trim_function( $trim_me );
?>

Te rog, explică ce face codul și cum răspunde la întrebare. Unii utilizatori ar putea să nu înțeleagă codul fără o mică explicație.

Chiar îmi place modul în care ai adăugat filtrul the_content
. +1 pentru asta.

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

poți folosi acest cod, funcționează corespunzător schimbă page_id=19 cu numărul paginii tale:
<?php $the_query = new WP_Query( 'page_id=19' ); ?>
<?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
<?php the_excerpt(); ?>
<?php endwhile;?>

Dacă te afli în bucla WordPress, poți face astfel:
<?php
$my_excerpt = get_the_excerpt();
if ( $my_excerpt != '' ) {
// Se efectuează unele manipulări ale șirului
}
echo $my_excerpt; // Afișează valoarea procesată pe pagină
Sau dacă ai un ID, obține postarea și folosește variabila membru post_excerpt
de exemplu:
$post = get_post( $post_id );
echo $post->post_excerpt;

Încearcă acest cod și schimbă doar page_id
-ul tău:
<?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">Citește mai mult</a>
</div>
<?php endwhile; ?>

Poți face acest lucru cu un shortcode. Adaugă următoarele în functions.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');
Pentru a afișa în conținut, folosește:
[lorem repeat="2"]
Trebuie doar să modifici "Lorem ipsum dolor ........." pentru lungimea necesară. Și parametrul lorem repeat=2 poate fi schimbat în funcție de numărul de paragrafe necesare. În exemplul de mai sus, =2 înseamnă 2 paragrafe, deci este multifuncțional.
