Правильный способ получения содержимого страницы
Мне нужно получить содержимое определенной страницы (например, page(12))
Я использовал следующий код:
<?php $id=47; $post = get_page($id); echo $post->post_content; ?>
Работает хорошо, за исключением совместимости с qtranslate - возвращает французский и английский текст
Но цикл работает нормально, возвращает только версию на нужном языке
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<div id="post">
<?php the_content(); ?>
</div> <!-- .post -->
Итак, вопрос.... КАК получить содержимое конкретной страницы внутри цикла...

Вот решение, которое я нашел и которое отлично работает... codex должен быть более конкретным насчет apply_filter ... использовал его постоянно
$id=47;
$post = get_page($id);
$content = apply_filters('the_content', $post->post_content);
echo $content;
Но я нашел отличное место, где можно задавать вопросы (ЗДЕСЬ)! спасибо, ребята!

Просто для уточнения:
Вы смешали две вещи. qTranslate хранит разные языки в одной и той же записи. Если вы вызываете get_content()
, $post->content
или любой другой прямой запрос, вы получите всё содержимое со всеми языками из базы данных.
Что делает qTranslate — он создаёт фильтр-хук, который прикреплён к хуку the_content
. Если кто-то вызывает the_content()
в шаблоне страницы, все остальные языки будут отфильтрованы.
Так что вы правы. Чтобы отфильтровать другие языки, вам нужно применить фильтр-хук the_content
к вашему выводу.

Эта функция используется нечасто, но лично мне нравится функция get_post_field()
. Она компактна, но при этом достаточно гибкая, когда вам нужно получить одно конкретное поле записи.

Вы можете использовать get_page
, например так:
