Modalitatea corectă de a obține conținutul unei pagini

15 mar. 2011, 22:57:36
Vizualizări: 42.9K
Voturi: 8

Trebuie să obțin conținutul unei pagini specifice (cum ar fi page(12))

Am folosit următoarea metodă:

<?php 
// Obține conținutul paginii cu ID-ul 47
$id=47; 
$post = get_page($id); 
echo $post->post_content;  
?>

Funcționează bine, cu excepția compatibilității cu qTranslate care returnează textul în franceză și engleză

Dar bucla (loop) funcționează corect, returnând doar versiunea în limba corectă

<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<div id="post">
<?php the_content(); ?>
</div> <!-- .post -->

Deci întrebarea este... CUM să obțin conținutul unei pagini specifice în interiorul buclei...

1
Comentarii

Acest lucru a fost foarte util! Mulțumesc! Am avut dificultăți în a găsi ceea ce credeam că este o cerere simplă.

User User
22 mar. 2012 00:14:51
Toate răspunsurile la întrebare 4
0

Iată soluția pe care am găsit-o și care funcționează bine... codex-ul ar trebui să fie mai specific despre apply_filter ... l-am folosit de fiecare dată.

$id=47;
$post = get_page($id);
$content = apply_filters('the_content', $post->post_content);
echo $content;

Dar am găsit un loc minunat pentru a pune întrebări (AICI)! Mulțumesc băieți!

16 mar. 2011 00:32:43
0

Doar pentru a clarifica:

Ați amestecat două lucruri aici. qTranslate stochează diferitele limbi în același articol. Dacă apelați get_content(), $post->content sau orice altă interogare directă, veți obține întregul conținut cu toate limbile diferite din baza de date.

Ceea ce face qTranslate, creează un filtru (filter-hook) care este atașat la hook-ul the_content. Dacă cineva apelează the_content() într-un șablon de pagină, toate celelalte limbi vor fi filtrate.

Deci aveți dreptate. Pentru a filtra celelalte limbi, trebuie să aplicați filtru-hook the_content la ieșirea dumneavoastră.

16 mar. 2011 13:36:18
0

Nu este folosită des, dar mie personal îmi place funcția get_post_field(). Este compactă, dar suficient de flexibilă atunci când ai nevoie să extragi un singur câmp specific.

15 mar. 2011 23:46:35
0

Puteți folosi funcția get_page, în felul următor:

http://codex.wordpress.org/Function_Reference/get_page

15 mar. 2011 23:16:23