# 根据帖子类别自动选择主题类别？

**URL:** https://meta.discourse.org/t/automatically-select-topic-category-based-on-post-category/229058
**Category:** WordPress
**Created:** [2022年六月5日 11:12 UTC](https://meta.discourse.org/t/automatically-select-topic-category-based-on-post-category/229058 "2022-06-05T11:12:35Z")
**Posts on this page:** 1
**Showing post:** 2

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [2022年六月6日 08:25 UTC](https://meta.discourse.org/t/automatically-select-topic-category-based-on-post-category/229058/2 "2022-06-06T08:25:27Z")

</div>

您可以使用 `wpdc_publish_post_category` 过滤器来实现这一点。它看起来会像这样（未经测试的代码示例，但可能开箱即用）：

```php
function wpdc_change_post_category( $category, $post_id ) {
  $wp_category_name = get_the_category( $post_id )[0]->name;
  $discourse_categories = WPDiscourse\Utilities\Utilities::get_discourse_categories();
  $discourse_category = array_search( $wp_category_name, array_column( $discourse_categories, 'name' ));
  return $discourse_category['id'];
}
add_filter( 'wpdc_publish_post_category', 'wpdc_change_post_category' );

```

然后，无论您选择哪个类别，帖子都将始终发布到名称与 WordPress 帖子类别名称匹配的类别。请确保这些名称完全匹配，否则将无法正常工作。

> [@oopsyscoops](#):
>
> 这似乎是一个显而易见的功能，所以也许我忽略了什么？

官方支持此功能将充满困难，因为它将依赖用户维护具有完全相同名称的类别列表，假设两个平台之间的类别模型保持不变，并且必须处理 WordPress 的分类系统本质上是可变的这一事实（即，它在安装了该插件的每个 WordPress 上都不会相同）。

---

_[View the full topic](https://meta.discourse.org/t/automatically-select-topic-category-based-on-post-category/229058)._
