【发布时间】:2011-05-26 20:14:40
【问题描述】:
我正在开发一个单页网站,我在该单页上显示来自其他页面的内容。为此,我添加了一个允许我使用<?php echo getPageContent(ID); ?> 的函数,它工作正常,除非我需要显示短代码中的内容,它只是将代码作为文本返回。有什么变通办法吗?
【问题讨论】:
标签: php wordpress echo shortcode
我正在开发一个单页网站,我在该单页上显示来自其他页面的内容。为此,我添加了一个允许我使用<?php echo getPageContent(ID); ?> 的函数,它工作正常,除非我需要显示短代码中的内容,它只是将代码作为文本返回。有什么变通办法吗?
【问题讨论】:
标签: php wordpress echo shortcode
要获得正确的格式并替换短代码,您需要应用挂钩到 the_content 标记的过滤器,如下所示:
echo apply_filters('the_content', getPageContent(ID));
【讨论】:
您选择这种策略来显示内容有什么原因吗?使用更符合正常 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;
?>
【讨论】: