Wordpress排除页面插件黑客

时间:2011-02-03 16:32:58

标签: php wordpress wordpress-plugin wordpress-theming

我希望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: - 删除 - (我在这个问题上有一个简单的拼写错误,没关系这个)

1 个答案:

答案 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>元素的样式,使它们看起来不像列表。