我希望wordpress排除页面插件能够与我的主题一起使用。这是我的主题查询所有页面的位置,并在一个页面上连续显示它们。
$pagepull = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'page' AND post_status = 'publish' ORDER BY menu_order", ARRAY_A);
foreach ($pagepull as $single_page){
echo $single_page['post_content'];
// do other stuff too
}
您对如何调整查询以使用排除页面有任何想法吗?没有功能可以让所有页面都存在?我知道有wp_list_pages()来获取页面列表,但我不打算在这里显示导航。
进行2次查询是更好的主意,1是获取页面列表,然后是2次查询该列表?不完全确定如何做到这一点,但额外的查询听起来像一个坏主意。想法?
更新: 从下面的答案我发现这个工作:
$excluded = ep_get_excluded_ids();
foreach ($excluded as $removepage){
echo "";
$limits .= " AND id != $removepage";
}
$pagepull = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'page' AND post_status = 'publish' $limits ORDER BY menu_order", ARRAY_A);
现在,为了安全起见,我如何测试插件的功能是否存在?感觉我依靠ep_get_excluded_ids();从要安装的Exclude插件。
UPDATE2: - 删除 - (我在这个问题上有一个简单的拼写错误,没关系这个)
答案 0 :(得分:0)
如果您尝试返回除指定页面之外的所有页面(并且您不想格式化wp_list_pages()
),则可以执行以下操作:
$excArr = array(5,7,10);
foreach($excArr as $p)
$limits .= " AND id != $p";
$pagepull = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'page' AND post_status = 'publish' $limits ORDER BY menu_order", ARRAY_A);
另一种选择是使用wp_list_pages()
并设置<li>
和<ul>
元素的样式,使它们看起来不像列表。