Jetpack Publicize:仅在 Twitter 上分享某个类别

Jetpack Publicize: Sharing only on Twitter for a category

在我当前的项目中,我有三个 post 类别(专栏、精选和新闻)并使用 Jetpack Publicize 在 Facebook 和 Twitter 上分享任何新的 post。

对于 "News" 类别,我只想在 Twitter 上进行宣传(因此以某种方式专门停用该类别的 Facebook 共享)。

我一直在查看 Jetpack 文档并调整了他们的推荐代码:

add_filter( 'wpas_submit_post?', 'news_twitter_submit_post', 10, 4 );
function news_twitter_submit_post( $ret, $post_id, $name, $connection ) {

    // $categories = get_the_terms( $post_id, 'category' );
    $categories = wp_get_post_categories( $post->slug );
    if ( 'facebook' == $name ) {
        if ( is_array( $categories ) )
            $categories = wp_list_pluck( $categories, 'slug' );
        if ( !empty( $categories ) &&  in_array( 'news', $categories ) ){
            $ret = false;
          }
    }
    return $ret; }

除此之外,post 仍在 Facebook 上发布。

我也一直在查看 publicize_should_publicize_published_post 挂钩,但无法让它工作。

我有什么办法可以做到这一点?

所以我更多地使用了 Jetpack,然后决定切换到另一个插件。

一些注意事项:

  • 我玩了一下 publicize_should_publicize_published_post,它基本上是整个 Publicize 插件的一个大 ON/OFF 开关。无法让它只关闭一个频道 (Facebook)

  • 无论我如何表达 if-else 条件,Facebook 发布仍然成功,尽管我确实检查了函数的输出是否正确。

仍然想知道是否有人对该问题有一个干净的解决方案,但让我们结束这个问题。