Obține conținutul unei pagini specifice (după ID)

4 iun. 2013, 16:51:53
Vizualizări: 177K
Voturi: 22

Am următorul șablon pentru prima pagină creat:

exemplu șablon pagină principală

Î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?

0
Toate răspunsurile la întrebare 9
1
34
<?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 );

?>
4 iun. 2013 17:06:20
Comentarii

bazat pe codul tău care nu a funcționat pentru mine, am reușit să fac asta să funcționeze - dacă ajută pe cineva - $post_info = get_post( 24 ); $content = $post_info->post_content; echo $content;

Jon Jon
23 apr. 2021 15:33:13
5
24

Uite aici !

<?php
$my_id = 5369;
$post_id_5369 = get_post($my_id);
$content = $post_id_5369->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
?>
16 nov. 2015 10:13:15
Comentarii

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.

cybmeta cybmeta
16 nov. 2015 10:16:16

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

Mohammad Mursaleen Mohammad Mursaleen
4 mai 2016 10:48:17

Funcționează perfect!

Charles Xavier Charles Xavier
20 iul. 2019 00:11:19

Ce face funcția str_replace?

netAction netAction
30 apr. 2020 19:34:10

La ce servește $content = str_replace(']]>', ']]>', $content);?

Sridhar Katakam Sridhar Katakam
22 oct. 2020 03:34:02
1
$post   = get_post( 42 );

$output =  apply_filters( 'the_content', $post->post_content );

echo $output;

din https://developer.wordpress.org/reference/functions/get_post/

17 mar. 2018 15:18:42
Comentarii

Acesta este cel mai concis răspuns. Îl iubesc.

aronmoshe_m aronmoshe_m
6 iul. 2021 05:57:42
1

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;?>
27 dec. 2014 11:13:18
Comentarii

Bun venit pe acest site. Se pare că acesta este primul tău răspuns. O explicație despre de ce și cum soluția ta rezolvă problema este întotdeauna binevenită.

cybmeta cybmeta
27 dec. 2014 19:07:18
0

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;
4 iun. 2013 17:05:11
0

Î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; ?>
7 feb. 2018 09:37:59
0

Pentru dependenții de cod pe o singură linie ca mine. Înlocuiți 69 cu ID-ul paginii voastre.

<?= apply_filters('the_content', get_post(69)->post_content); ?>
6 feb. 2020 21:38:19
0

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.

2 oct. 2020 14:16:57
0

Deja răspuns, dar cred că o funcție mult mai practică este get_post_field( 'fieldname', $post_id );

Deci în cazul tău:

echo get_post_field( 'post_excerpt', $post_id );
13 feb. 2021 13:54:02