管理员视图:根据帖子是否附加了特定分类来筛选帖子

时间:2017-03-30 作者:SpuriouslyAwake

我知道如何在管理员视图中按分类法术语过滤帖子,但在我的情况下,我希望能够根据帖子是否附加了特定的分类法(而不是其术语)来查看帖子。

例如:Post类型为“事件”。有两种分类法——“区域”和“国际”。它们都有自己的术语,我可以为它们创建两个单独的过滤器。我想要的是一个过滤器开关,它可以让我看到“区域”或“国际”事件。

有人能给我指一下正确的方向吗?我对WP\\U查询相当陌生,但我想我必须检查一下这篇文章是否属于分类法的任何术语?

1 个回复
SO网友:SpuriouslyAwake

在做了大量的修改之后,我设法使功能正常工作。

首先,我使用wp的操作为“区域”和“国际”添加自定义下拉框restrict_manage_posts. 然后我设置了一个自定义函数,该函数将添加到wp的过滤器中parse_query.

在该功能中:

// type is the name of the select field 
if($_GET[\'type\'] == \'Regional\'){

  // get terms as WP_Term objects
  $regional_terms_objects = get_terms( array(
    \'taxonomy\' => \'regional\',
    \'hide_empty\' => false,
  ));

  // convert them to an array of slugs
  $regional_terms_objects = array();
  foreach ($regional_terms_objects as $regional_terms_object){
    $regional_terms[] = $regional_terms_object->slug;
  }

  // filter the posts by all terms for taxonomy
  $tax_query = array(
    \'taxonomy\' => \'event-categories\',
    \'field\' => \'slug\',
    \'terms\' => $regional_terms
  );
}else{
   // the same stuff for \'International\'
}
// add the query
$query->set(\'tax_query\', $tax_query);
这样,我就可以在admin视图中选择“Regional”和“International”,只查看属于所选分类法的事件。我希望有人可以使用它:)

相关推荐

无法访问wp-admin内部服务器错误500

我突然无法访问company.co.za/wp-admin, 当它重定向到http://company.co.za/wp-login.php?redirect_to=http%3A%2F%company.co.za%2Fwp-admin%2F&reauth=1 错误为500我应该如何解决此问题?我知道我可以尝试禁用所有插件,但在不登录wp dashboard的情况下如何做到这一点?我还应该采取其他措施吗?非常感谢。