是否可以仅从WordPress发布指定类别?

我们已将 Discourse 集成到我们的 Wordpress 网站,手动发布可以正常工作。但我希望设置自动发布到 Discourse,仅发布特定类别的帖子。我看到我们可以按标签排除,但这不适用于此用例。我想按类别包含。这是否可行,如果不可行,是否可以添加此功能?这似乎是一个非常有用的/重要的选项,老实说,我曾惊讶地发现它似乎还没有。谢谢。

@vanclute

您可以使用 wpdc_publish_after_save 过滤器来实现此目的。在您的 WordPress functions.php 文件中添加以下内容:

function publish_to_discourse( $force_publish, $post_id, $post ) {
  return has_term( TERM, TAXONOMY, $post );
}
add_filter( 'wpdc_publish_after_save', 'publish_to_discourse', 10, 3 );

您需要将 TERM 和 TAXONOMY 替换为您在 WordPress 中使用的“分类”内容。请注意,TERM 可以是一个数组,例如

array( 'category name 1', 'category name 2')

示例

function publish_to_discourse( $force_publish, $post_id, $post ) {
  return has_term( array( 'news', 'blog' ), 'category', $post );
}
add_filter( 'wpdc_publish_after_save', 'publish_to_discourse', 10, 3 );
3 个赞

谢谢。我确实希望不必修改任何 WP 文件,但感谢您的指点。

无需修改 :wink: 按照应有的方式进行操作…

安装代码片段或类似插件,并通过它来完成(当然,你也可以将其作为一个单独的插件来实现;没有区别)。这与安装 Discourse 的主题组件或插件完全相同。

只有当修改依赖于主题时,才在子主题的 functions.php 文件中进行操作。这次不是这种情况。

1 个赞