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: