Get_Pages不接受我的查询

时间:2012-07-30 作者:101phil

我希望有人能指出我的错误。我在函数中有一个函数。带有简单meta\\u查询的php。

如果我使用此查询。

$args = array(
\'meta_query\' => array(
  array(
   \'meta_key\' => \'Partner_Level\',
   \'meta_value\' => \'Gold\',
   \'post_type\' => \'page\',
   \'post_status\' => \'publish\' 
)));
$pages = get_pages($args);


foreach ( $pages as $page ) {
$option = \'<option value="\' . get_page_link( $page->ID ) . \'">\';
            $option .= $page->post_title;
            $option .= \'</option>\';
            echo $option;
}
我检索站点中的每个页面,而不是与传递给get\\u pages()的$args匹配的页面;

如果我将$参数简化为

$args = array(
    \'meta_key\' => \'Partner_Level\',
    \'meta_value\' => \'Gold\',
    \'post_type\' => \'page\',
    \'post_status\' => \'publish\'
    );
那我就没有任何结果了。

所以这真的是一个全有或全无的问题,从我看来,我的查询看起来不错,但我知道我忽略了一些东西,但什么?感谢您的帮助。

我已经执行了一条SQL语句,并且能够使用..检索预期结果。。

$querydetails = "
   SELECT wposts.*
   FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
   WHERE wposts.ID = wpostmeta.post_id
   AND wpostmeta.meta_key = \'Partner_Level\'
   AND wpostmeta.meta_value = \'Gold\'
   AND wposts.post_status = \'publish\'
   AND wposts.post_type = \'page\'
   ORDER BY wposts.post_date DESC
 "; 
因此,我的假设是get\\u pages()没有监听我的$args。

提前谢谢。

3 个回复
SO网友:101phil

我已经对这种方法进行了总结,并回到了我最初的功能。它遍历帖子,查找传递给它的合作伙伴级别,然后检索页面列表。然后,我显示一个带有帖子缩略图的样式列表,作为可单击的链接。将需要调整以达到所需的可访问性级别,但这是以后的事情。我感谢你对这个问题的评论。

供将来参考:

function the_partners($cpLevel) {
global $wpdb;

 $querydetails = "
   SELECT wposts.*
   FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
   WHERE wposts.ID = wpostmeta.post_id
   AND wpostmeta.meta_key = \'Partner_Level\'
   AND wpostmeta.meta_value = \'$cpLevel\'
   AND wposts.post_status = \'publish\'
   AND wposts.post_type = \'page\'

   ORDER BY wposts.post_title ASC
 "; 

$pageposts = $wpdb->get_results($querydetails, OBJECT);

echo "<ul class=\\"logobox clearfix\\">";
        foreach ( $pageposts as $page ) {
                $option = \'<li>\';
                $option .= \'<a href="\' . get_page_link( $page->ID ) . \'">\' . get_the_post_thumbnail( $page->ID ) . \'</a>\';
                $option .= \'</li>\';
                echo $option;
        }
echo "</ul>";    
}

SO网友:Sisir

当你这样做的时候meta_query 没有调用任何键meta_keymeta_value 仅尝试使用keyvalue.

Like This:

$args = array(
   \'post_type\' => \'page\',
   \'post_status\' => \'publish\',
   \'meta_query\' => array(
      array(
         \'key\' => \'Partner_Level\',
         \'value\' => \'Gold\'
      )
   )
 );
让我知道这是否有效。您需要使用Appropriate Meta Compare

SO网友:Rutwick Gangurde

您还必须说出比较类型。尝试以下操作:

$args = array(
    \'post_type\' => \'page\',
    \'post_status\' => \'publish\',
    \'meta_query\' => array(
        array(
            \'key\' => \'Partner_Level\',
            \'value\' => \'Gold\',
            \'compare\' => \'LIKE\'
        )
    )
 );

结束

相关推荐

Wordpress Child Themes

我试图在wordpress子主题中重新声明父主题已经在使用的函数。但是,在尝试执行此操作时,我收到一条“致命错误:无法重新声明”消息。此外,我尝试使用以下方法,但没有成功:if (!function_exists(\'jr_load_scripts\')) { // do fancy things here... } 这是the link 如果您想快速查看。。。EDIT: 以下是完整代码:if (!function_exists(\'jr_load_scripts\')) {