为什么这个get_pages返回一个空数组?

时间:2018-02-02 10:19:21

标签: php wordpress

我试图为自定义帖子类型添加元框(在插件中)。

我想获取在我的Wordpress网站中分配了特定页面模板的所有页面,因此我使用以下内容:

$surgeons = get_pages(array(
    'meta_key' => '_wp_page_template',
    'meta_value' => 'template-meet-the-team-single.php'
));

然而,$外科医生作为一个空数组返回,为什么?

听起来没有页面正在使用我所说的模板,好像我只是使用默认的get_pages()它返回所有页面,但这是不正确的,因为我肯定有分配此模板的页面

此代码在插件文件中是否重要,而meta_value是否试图在插件文件夹中找到此模板?

2 个答案:

答案 0 :(得分:0)

请尝试使用自定义查询:

$all_team_single =  query_posts(array(
        'post_type' =>'page',
        'meta_key'  =>'_wp_page_template',
        'meta_value'=>'template-meet-the-team-single.php',
    ));

您的上述代码看起来不错,要获得更多帮助,请访问以下链接。 https://wordpress.stackexchange.com/questions/173469/loop-through-pages-with-specific-template

答案 1 :(得分:0)

虽然我不认为这确实能解决我遇到的问题,但这是修复返回数组并提供正确结果的方法。

我没有使用get_pages(),只是将其切换为get_posts(),然后返回正确的结果。

$surgeons = get_posts(array(
    'post_type' => 'page',
    'posts_per_page' => -1,
    'meta_key' => '_wp_page_template',
    'meta_value' => 'template-meet-the-team-single.php'
));