我为wordpress构建了一个非常独特且javascript密集的主题,现在短信不起作用。我没有安装任何插件,所以不是这样。我从使用短代码所需的wordpress模板文件中删除了什么(例如:[gallery])。
我了解如何制作短代码,但是WP如何将其发布并替换为“[gallery]”,当它将其吐出以供显示时?
编辑: 这是我目前正在使用的内容:
$pagepull = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'page' AND post_status = 'publish' ORDER BY menu_order", ARRAY_A);
$i = 1;
foreach ($pagepull as $single_page){
echo "<div class=\"section\"><ul><li class=\"sub\" id=\"" . $i . "\"><div class=\"insection\">";
echo $single_page['post_content'];
$i++;
// more code that is irrelevant...
// more code that is irrelevant...
// more code that is irrelevant...
}
答案 0 :(得分:11)
好的,试试这个
$pagepull = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'page' AND post_status = 'publish' ORDER BY menu_order", ARRAY_A);
$i = 1;
foreach ($pagepull as $single_page){
echo "<div class=\"section\"><ul><li class=\"sub\" id=\"" . $i . "\"><div class=\"insection\">";
echo apply_filters('the_content',$single_page['post_content']);
$i++;
Wordpress会收集您的内容并对其应用过滤器。您必须注册过滤器并解析您的内容。
如果您的主题没有显示您的短代码,可能会输出帖子的内容而不让Wordpress过滤它。
为帖子调用函数get_the_content(),不会为短代码运行过滤器(如果有的话)。
申请
<?php apply_filters('the_content',get_the_content( $more_link_text, $stripteaser, $more_file )) ?>
参考:http://codex.wordpress.org/Function_Reference/get_the_content
注意:许多插件注册了包含内容的过滤器以实现短代码!
答案 1 :(得分:1)
如果您想要变量中的内容,请使用此选项:
ob_start();
the_content();
$content = ob_get_clean();
现在你可以回复$ content;或者使用正则表达式或任何你想要的内容看起来像你想要的那样。
答案 2 :(得分:1)
我遇到了同样的问题。
短代码取决于WP Loop,但这是一个不同的问题。长话短说,我在应显示短代码的页面添加了the_post();
(例如articles.php
)。
此外,请确保您使用the_content()
来显示文字(例如,使用$post->post_data
不会显示短信代码。)
答案 3 :(得分:0)
我的解决方案正在取代
<?= get_the_content() ?>
带
<?= the_content() ?>
,正如keatch已经提到的那样,在返回内容之前应用过滤器。