Duplicate PostsはWordPressの記事を複製することができる便利なプラグインです。
記事タイトル、本文、カテゴリ、タグ、アイキャッチ画像などを複製して記事を作成することができます。シリーズ物など同じようなフォーマットで記事を作成するときに役に立ちます。
余談ですが、同じようなプラグインにWordPress記事のテンプレートを作成することができるTinyMCE Templatesというプラグインもあります。こちらは記事のテンプレートを作成できるので、記事のパターンが決まっているときや、毎回同じような内容のパーツを挿入したいときに役に立ちます。
さて、Duplicate Postで記事を複製すると、プラグインJetpackのパブリサイズ共有機能を使った記事投稿時のTwitterへの自動投稿が上手く動作しません。
↓Twitterにチェックが入っているのに、記事を公開しても自動投稿されません!
この問題は、Jetpackのパブリサイズ共有で記事を共有した際に、データベースにその記事が「共有済み」であることを示すフラグが作成され、Duplicate Postで記事を複製する際に「共有済み」のフラグも複製してしまうために発生します。このフラグはwpx_postmeta
のテーブルに格納されています。
Duplicate Postには、wpx_postmeta
テーブルの情報のうち、複製したくない情報を指定できる機能があります。
Duplicate Postの管理画面から「複製しないカスタムフィールド」に、以下の情報を記入して設定を保存します。
_wpas_done_all,_wpas_mess
これで、記事を複製しても、パブリサイズ共有が可能になります。
通常はこれで解決しますが、この設定を行っても共有が上手くいかないことがあります。
この現象は、元となる記事でTwitter共有のチェックが外れている場合に発生します。
元となる記事のTwitter共有のチェックが外れていると、上記の設定を行ってもTwitterへの自動投稿がうまくいかないのです。
これは、元となる記事でTwitter共有のチェックが外れていると、「この記事のTwitter共有はスキップする」という情報がデータベースに保存され、その情報も複製してしまうためです。
これも、Duplicate Postの管理画面から「複製しないカスタムフィールド」に「この記事のTwitter共有はスキップする」のフラグを指定すれば、記事を複製した際にTwitter共有ができるようになります。
しかし、この値はサイトごと(JetpackでTwitterへの共有認証を行う度)に変わります。通常のサイトは1つの値だけですが、Twitterへの認証共有を何度かやり直した場合は、複数の値を持っています。
データベースを見ることができる人はデータベースで値を調べればいいのですが、難しい場合は、新規でTwitter共有のチェックを入れた記事を公開して、その記事を複製していく方が無難です。
データベースには、wpx_postmeta
テーブルのmeta_key
カラムに_wpas_skip_12345678
のような名前で保存されています。_12345678
の部分が、JetpackでTwitterへの共有認証を行った際に生成されるIDです。
SQLで重複値を除いて表示するには次のコードを実行します。
SELECT DISTINCT meta_key FROM `wpx_postmeta` WHERE meta_key REGEXP '(_wpas_skip_.*)';
表示された値を、Duplicate Postの管理画面から「複製しないカスタムフィールド」にカンマ区切りで追加します。