Modalitatea corectă de a obține conținutul unei pagini
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...

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!

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ă.

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.

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