Использование коротких кодов WordPress, когда ‹?php echo getPageContent(); ?› используется для отображения содержимого

Я работаю над одностраничным сайтом, где я показываю контент с других страниц на этой единственной странице. Для этого я добавил функцию, которая позволяет мне использовать <?php echo getPageContent(ID); ?>, это работает нормально, за исключением случаев, когда мне нужно отобразить контент из шорткода, вместо этого он просто возвращает код в виде текста. Любая идея обойти?


person Cpawl    schedule 26.05.2011    source источник


Ответы (2)


Чтобы получить правильное форматирование и заменить шорткоды, вам нужно применить фильтры, подключенные к тегу the_content, примерно так:

echo apply_filters('the_content', getPageContent(ID));
person Richard M    schedule 26.05.2011

Есть ли причина, по которой вы выбрали эту стратегию для отображения контента? Использование чего-то более похожего на обычную систему разработки страниц WordPress и систему шаблонов, скорее всего, решит вашу проблему. Я рекомендую использовать комбинацию get_posts() и setup_postdata().

Из документов WordPress:

<?php
global $post;
$tmp_post = $post;
$args = array( 'numberposts' => 5, 'offset'=> 1, 'category' => 1 );
$myposts = get_posts( $args );
foreach( $myposts as $post ) : setup_postdata($post); ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
<?php $post = $tmp_post;
?>

См.: http://codex.wordpress.org/Template_Tags/get_posts.

person spuriousdata    schedule 26.05.2011