🐦
WordPressの記事を自動でXに投稿するプラグインを作ってみた
WordPressの記事をXに自動投稿するプラグインを開発しました
はじめに
ブログを書いた後、いちいちXに投稿するのが面倒...そんな経験はありませんか?
私も同じ悩みを持っていたので、WordPressの記事を自動的にX(旧Twitter)に投稿するプラグインを開発しました。
主な機能
- 新規投稿時の自動投稿
- 記事更新時の自動投稿(オプション)
- カスタマイズ可能な投稿テンプレート
- カスタムハッシュタグ機能
- 投稿ごとの個別設定
- デフォルトハッシュタグの設定
- カテゴリーをハッシュタグとして使用可能
- 最大ハッシュタグ数の制限設定
- 管理画面からの簡単設定
- テスト投稿機能
技術的な詳細
使用技術
- PHP 7.0以上
- WordPress 5.0以上
- X API (Twitter API v2)
- cURL PHP拡張
プラグインの構成
WordPressで使用するためにはプラグインディレクトリ内に下記のReadmeを除いた構成でアップロードしてください
auto-post-to-x/
├──── includes/
│ └── TwitterAPIExchange.php # Twitter-API-PHPのライブラリ
├── wp-to-x-auto-post.php # プラグインのメインファイル
└── README.md
主要な実装ポイント
- フック処理
// 新規投稿時のフック
add_action('publish_post', 'post_to_x');
// 更新時のフック
add_action('post_updated', 'update_post_to_x', 10, 3);
- 投稿テンプレート処理
function format_post_message($post) {
$template = get_option('x_post_template');
$message = str_replace(
['{title}', '{url}'],
[$post->post_title, get_permalink($post)],
$template
);
return $message;
}
- ハッシュタグ処理
function get_post_hashtags($post_id) {
$custom_tags = get_post_meta($post_id, 'x_hashtags', true);
$category_tags = get_category_hashtags($post_id);
return array_merge(
explode(',', $custom_tags),
$category_tags
);
}
開発で苦労した点
1. API制限への対応
X APIには1ヶ月あたり1,500ツイートという制限があります。これに対応するため、以下の機能を実装しました
- 更新投稿の間隔制御
- 投稿失敗時のエラーハンドリング
- API制限のカウント機能
2. 文字数制限への対応
Xの投稿文字数制限(280文字)に対応するため
- テンプレート文字数のバリデーション
- URLの自動短縮
- ハッシュタグの文字数考慮
3. 投稿の重複防止
短時間での同一内容の投稿を防ぐため
- 前回の投稿時刻の記録
- 更新間隔のチェック
- 更新間隔は設定変更可能です
- 投稿内容のハッシュ値比較
今後の展望
-
機能追加予定
- カスタム投稿タイプのサポート
- 画像投稿機能
- 投稿スケジュール機能
- より柔軟な投稿テンプレート
-
改善予定
- パフォーマンスの最適化
- エラーハンドリングの強化
- 多言語対応
おわりに
このプラグインはGitHubで公開しています:
ぜひ使ってみてください!
また、改善点や機能追加の要望があればGitHubのIssueやプルリクエストをお待ちしています。
Discussion