Modo corretto per ottenere il contenuto di una pagina
Devo ottenere il contenuto di una pagina specifica (come page(12))
Ho usato questo:
<?php $id=47; $post = get_page($id); echo $post->post_content; ?>
Funziona bene tranne per la compatibilità con qTranslate che restituisce il testo in francese e inglese
Ma il loop funziona bene, restituisce solo la versione nella lingua corretta
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<div id="post">
<?php the_content(); ?>
</div> <!-- .post -->
Quindi la domanda è... COME ottenere il contenuto di una pagina specifica all'interno del loop...

Ecco la soluzione che ho trovato e che funziona bene... il codex dovrebbe essere più specifico riguardo a apply_filter... l'ho usato ogni volta
$id=47;
$post = get_page($id);
$content = apply_filters('the_content', $post->post_content);
echo $content;
Ma ho trovato un ottimo posto per fare domande (QUI)! grazie ragazzi!

Per chiarire:
Hai mescolato due cose qui. qTranslate memorizza le diverse lingue nello stesso post. Se chiami get_content()
, $post->content
o un'altra query diretta, otterrai l'intero contenuto con tutte le diverse lingue dal database.
Quello che fa qTranslate è creare un filter-hook che viene collegato all'hook the_content
. Se qualcuno chiama the_content()
in un template di pagina, tutte le altre lingue verranno filtrate.
Quindi hai ragione. Per filtrare le altre lingue, devi applicare il filter-hook the_content
al tuo output.

Non viene utilizzata spesso, ma personalmente mi piace la funzione get_post_field()
. È compatta, ma allo stesso tempo flessibile quando hai bisogno di recuperare un singolo campo specifico.

Puoi utilizzare get_page
, in questo modo:
