在get_post()中填充排除数组()

时间:2018-05-10 作者:PageMaker

我正在使用此代码填充元框中的下拉菜单。

        $parents = get_posts(
           array(
           \'post_type\'   => \'jhk_story\', 
           \'orderby\'     => \'ID\', 
           \'order\'       => \'ASC\', 
           \'numberposts\' => -1,
           \'exclude\'     => array(121, 131, 138),
           )
        );
此post\\u类型包含post\\u类型“jhk\\u frames”的父级,后者是唯一的子级。因此,子项在其post\\u parent字段中包含其父项的post\\u ID。父项在其post\\u parent字段中仍然包含默认的零。

我的问题是:如何只选择post\\u类型的“jhk\\U故事”中有孩子的帖子?

下一步是将这些帖子的id放入“exclude”数组。您现在看到的值是我放在那里的,例如(和一个有效的检查)。

任何帮助都将不胜感激。

1 个回复
SO网友:PageMaker

经过三天的努力,我终于找到了答案。是的,我知道。。。为我辩护,我可以说这是我的第一个WP项目。我是这样做的:

    $exclude = get_excluded_parents();

    $parents = get_posts(
        array(
            \'post_type\'   => \'jhk_story\', 
            \'orderby\'     => \'ID\', 
            \'order\'       => \'ASC\', 
            \'numberposts\' => -1,
            \'exclude\'     => $exclude,
        )
    );

    The rest of the code here ...

  }

} // story_frame_attributes_meta_box()


/* 
 * Filters excluded parents from post_type: story_frame
 */
function  get_excluded_parents() {

  // Select all posts with post_type = story_frame
  $childs = get_posts (
    array (
      \'post_type\'   => \'story_frame\',
      \'orderby\'     => \'ID\',
      \'order\'       => \'ASC\',
      \'numberposts\' => -1
    )
  );

  $exclude = array();

  foreach ( $childs as $child ) {

    if ( 0 < $child->post_parent ) {

      array_push( $exclude, $child->post_parent );

    }

  } // foreach $child

  return $exclude;

} // get_excluded_parents()
希望有人能从中受益。

结束

相关推荐

‘Recent Posts’链接在新窗口中打开,而不复制‘WP_WIDGET_Recent_Posts’类

我有一个要求,就是在一个新窗口中打开“最近的帖子”小部件上的链接(如果有选择的话,我不会实现这一点,但我被要求这样做)。我发现要实现这种行为,我需要从class-wp-widget-recent-posts.php 进入我的孩子主题functions.php 并对其进行修改以创建行为。为了在新窗口中打开链接,这似乎是一种冗长的方式。是否有一种更直接的方法不存在重新实现整个类的潜在缺点(如果WP在更新中更改了一些基本内容,那么将来可能会中断),并且不需要修改原始类class-wp-widget-recent