Steamer Lane Studio技術備忘録ワードプレス

暫定-Autoshare for Twitterによる連携で特定のカテゴリを除外する

wordpress 暫定-Autoshare for Twitterによる連携で特定のカテゴリを除外する
作成日: 2023年11月8日

TwiteerのAPIに関する一連の事件で、API1による非プラグイン投稿ができず、表題のプラグインなら使えるので代用していた。
基本ここでは非プラグイン主義、だがAPI2でのものが難しく(基本やるけどそっちのエンジニアではないからね)仕方ないのでプラグインを使った。
このプラグイン、2.11にバージョンアップすると使えない場合があり、テーマに依るものと思われるが不安定なのは間違いない。幸い2.00でも問題はないのでそれに対応した特定のカテゴリに属する記事をツイートさせないコードを作った。

function exclude_tweet_by_category($update_data, $post_id) {
// 除外するカテゴリーのIDを指定
$excluded_category_ids = array(15); // 除外したいカテゴリーIDを設定仮に15としてある、複数の場合はカンマ区切り
// 投稿に関連付けられたカテゴリーIDを取得
$post = get_post($post_id);
// 除外するカテゴリーが投稿に含まれている場合はツイートを除外
foreach ($excluded_category_ids as $category_id) {
if (has_term($category_id, 'category', $post)) {
error_log('Tweet Excluded: Category ID ' . $category_id);
return false; // ツイートを除外
}
}
return $update_data; // 除外されない場合はツイートを許可
}
add_filter('autoshare_for_twitter_pre_status_update', 'exclude_tweet_by_category', 99, 2);

これをfunction.phpに書き込めばOK。
Twitter(Xだけど)の行く末が怪しいが、やはり歴史と慣れたインターフェースから他を使うのはしんどい。
ThredsなんてFBで良いものだし、mastodonはサーバー選びなどからどうも日本人には受け入れ辛い様だ・
API2用のコードは合間合間で考えるが、その間連携できないのは困るからとりまこれで。