Jetpackでカスタム投稿タイプをパブリサイズ共有する方法

JetpackはWordPress開発元のAutomaticが提供している高機能なプラグインです。

有料版と無料版がありますが、無料版でも

  • サイトの統計情報とアナリティクス機能
  • Facebook、Twitter、LinkedIn、Tumblr、Reddit、WhatsApp での自動共有機能
  • 関連記事を自動表示する機能

が利用できます。

中でもSNSへの自動共有機能(パブリサイズ共有)は、ワードプレスの投稿記事を複数のSNSへ自動的にシェアしてくれる人気機能です。

ところが、Jetpackの標準機能では、ワードプレスに最初から付いている「投稿」ページしか共有できません。サイトによっては、「新着情報」「製品情報」「お客様の声」「ポートフォリオ」など、投稿とは区別したページ(カスタム投稿タイプ)を追加して運用する場合があるでしょう。

以下のコードをfunctions.phpまたはfunctions.phpに読み込ませているphpファイルに追加すると、カスタム投稿タイプのスラッグ名に指定したカスタム投稿タイプの投稿ページに、パブリサイズ共有の設定欄が表示され、通常の投稿と同じように共有できるようになります。

// =============================================
// カスタム投稿タイプをパブリサイズ共有に対応させる
// =============================================
function custom_publicize_share() {
	add_post_type_support( 'カスタム投稿タイプのスラッグ名', 'publicize' );
}
add_action( 'init', 'custom_publicize_share' );

このように、カスタム投稿タイプの公開ボタンの近くに、Jetpackのパブリサイズ共有欄が表示されます。

カスタム投稿タイプの公開ボタンの近くに、Jetpackのパブリサイズ共有欄が表示されます

コードの解説

5行目
add_post_type_support()はWordPressの関数で、1つ目のパラメータに指定したカスタム投稿タイプに対して、2つ目のパラメータに指定した機能のサポートを追加する役目をします。

だから、post_type(投稿タイプに)特定の機能のsupport(サポート)をadd(追加する)という名前なのですね。

ワードプレスのadd_post_type_support関数の使い方

たとえば、あなたのワードプレスに「お客様の声」というラベル名のカスタム投稿タイプがあって、カスタム投稿タイプのスラッグ名が「voice」だったとしましょう。この場合に、お客様の声のページをあらたに公開したときSNSに自動共有したいなら、次のように記述します。

// =============================================
// カスタム投稿タイプをパブリサイズ共有に対応させる
// =============================================
function custom_publicize_share() {
	add_post_type_support( 'voice', 'publicize' );
}
add_action( 'init', 'custom_publicize_share' );

7行目
add_action()もワードプレスの関数で、1つ目のパラメータに指定した「システム内で特定の処理が行われるタイミング」で、2つ目のパラメータに指定した名前のPHP関数を一緒に実行してもらうことを予約する役目をします。

このコード全体で、4行目~6行目で自分で定義した処理(カスタム投稿タイプの「お客様の声」をパブリサイズ共有に対応させる)を、initというタイミングでワードプレスに実行してもらうという意味になります。

なお、initとはinitialization(イニシャライゼーション:初期化)の略で、プログラミングの世界でよく使われる言葉です。

add_action() を使ってワードプレスのシステム内で行われるさまざまな処理のタイミングで自分で定義した処理を実行させられる仕組みのことを、アクションフックと呼びます。アクションフックは、お使いのテーマやプラグインに用意されている設定だけでは実現できないさまざまなカスタマイズを実現することができる、非常に応用範囲の広い仕組みです。PHPの基本的な文法知識に加えて、プログラミングに関する一般的な知識も必要なので、決してハードルは低くありませんが、ワードプレスを使ったサイト構築を仕事にされる方や、ウェブプログラミングに興味のある方は、学んでみてはいかがでしょうか?