【Simplicity】カスタム投稿タイプでもコメント凍結/SEO設定/広告設定/更新日の変更などを適用する方法

公開日:2017年6月28日
Knowledge Base Wordpress パソコン カスタマイズ 設定

名前の由来の通りシンプルな外観で、かつ分かりやすい内部構造でありながら、投稿編集画面上で

  1. コンテンツごとにコメントを許可/凍結できる
  2. コンテンツごとに検索エンジン表示向けのタイトルや抜粋(メタディスクリプション)などを設定できる(SEO設定)
  3. コンテンツごとに広告の表示/非表示が設定できる
  4. 簡単な記事の修正時に「更新日」が書き換わらないようにできる

など「これやれたらなぁ」と思う機能が満載のWordpressテーマ【Simplicity】。無料でここまで考えてあるテーマはなかなかないと思います(私はすっかりSimplicityマニアです)。

これらの便利機能はWordpress標準の投稿タイプである「投稿」と「固定ページ」ではすぐに使えるようになっていますが、カスタム投稿タイプの場合は表示されません(当然動作もしません)。

いろいろなプラグインだのテーマだのを使ったことのある方なら分かると思いますが、そうでない方は「カスタム投稿タイプで使えないならダメじゃん」なんて思ってしまうかもしれませんね。

少し脱線しますが、どうしてカスタム投稿タイプには適用されてないの?についてちょっとだけ説明すると、カスタム投稿タイプというのは文字通りカスタム機能でWordpressでサイトを作る人が任意に設定できる機能、そしてカスタム投稿の名前も任意に付けることができる機能なので、プラグインやテーマの開発者が想像することができません。従って不特定なものをソースに加えて不具合が出ないように、投稿のタイプはWordpress標準の「投稿」と「固定ページ」に限定されているのです。

でも、不特定なものをソースに加えて不具合が出ないようにしてあるだけですから、ちょっとカスタマイズすることでカスタム投稿タイプでも同様の機能が使えるようになります。

今回はSimplicityで記事を書くときに設定できる便利な機能の【コメントの許可/凍結】【SEO設定】【広告設定】【更新タイプ】を自身で追加したカスタム投稿タイプでも使用できるようにする方法を紹介します。

【Simplicity】の投稿にある機能をカスタム投稿タイプでも使えるようにする方法

これらの機能はWordpressの便利機能である「カスタムフィールド」を使用しています。それぞれのコンテンツのカスタムフィールドに値がある/ない、設定がある/ないによって投稿機能が働きます。つまり、使いたい機能のカスタムフィールドを追加してやればいいということになります。

では早速カスタマイズしていきましょう。

複数のカスタム投稿タイプを使っている場合には全部一緒にやっちゃおう!と考えがちですが、焦る気持ちを押さえてまず1つだけ設定して実際に動作するかを確認してください(複数設定の方法は文末の「おまけ」で紹介しています)。

【Simplicity】テーマが作るカスタムフィールドの定義は、親テーマの中の「custom-field.php」にありますのでテーマの編集で開きます。

開いてすぐ見える場所(ソースの上のほう)に

  //コメントボックス
  add_meta_box( 'comment_setting_in_page','コメントの設定', 'view_comment_custom_box', 'post', 'side' );
  //広告ボックス
  add_meta_box( 'ad_setting_in_page','広告の設定', 'view_ad_custom_box', 'post', 'side' );
  add_meta_box( 'ad_setting_in_page','広告の設定', 'view_ad_custom_box', 'page', 'side' );
  add_meta_box( 'ad_setting_in_page','広告の設定', 'view_ad_custom_box', 'topic', 'side' );
  //SEOボックス
  add_meta_box( 'seo_setting_in_page','SEO設定', 'view_seo_custom_box', 'post', 'normal', 'high' );
  add_meta_box( 'seo_setting_in_page','SEO設定', 'view_seo_custom_box', 'page', 'normal', 'high' );
  add_meta_box( 'seo_setting_in_page','SEO設定', 'view_seo_custom_box', 'topic', 'normal', 'high' );
  //ページ設定
  add_meta_box( 'page_setting_in_page','ページ設定', 'view_page_custom_box', 'post', 'side' );
  add_meta_box( 'page_setting_in_page','ページ設定', 'view_page_custom_box', 'page', 'side' );
  add_meta_box( 'page_setting_in_page','ページ設定', 'view_page_custom_box', 'topic', 'side' );
  if (is_amp_enable()) {
    //AMP設定
    add_meta_box( 'amp_setting_in_page','AMP設定', 'view_amp_custom_box', 'post', 'side' );
  }
  //更新タイプ
  add_meta_box( 'update_type_setting_in_page', '更新日の変更', 'view_update_type_custom_box', 'post', 'side' );
  add_meta_box( 'update_type_setting_in_page', '更新日の変更', 'view_update_type_custom_box', 'page', 'side' );
  //add_meta_box( 'update_type_setting_in_page', '更新日の変更', 'view_update_type_custom_box', 'custom_post_type', 'side' );
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. コードは合っているはずなのに更新できないときは
  6. 特にエラーの出た行内に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があり、Wordpressのエディタチェックではこれを「’」や「)」など閉じ子のエラーとして認識され更新できないことがあります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。
  7. 「何かが間違っています...」と表示され、更新できないときは
  8. このエラーは本当に何がエラーなのかをWordpressのチェックが判断できない場合に発生します。解決策としてはその画面を開き直すことなのですが、その際希に元のコードがすべて削除されてしまう場合がありますので、今表示されているコードを一旦どこかへコピーしてからページの再読み込みをするようにしてやり直します。
    ※このエラーは不明なエラーなので予期せぬ動きをする可能性がありますので特に慎重な対処が必要です
これらのエラー対処については以下のページが参考になるかも知れません

コードを転載する場合には

ご自身のサイトで当ページで紹介しているコードを転載される場合には当ページへのリンクを入れていただきますようお願いいたします

というのがありますね。これを必要に応じて1つ1つカスタマイズしていきます。

例えばコメントボックスであれば、

  add_meta_box( 'comment_setting_in_page','コメントの設定', 'view_comment_custom_box', 'post', 'side' );
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. コードは合っているはずなのに更新できないときは
  6. 特にエラーの出た行内に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があり、Wordpressのエディタチェックではこれを「’」や「)」など閉じ子のエラーとして認識され更新できないことがあります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。
  7. 「何かが間違っています...」と表示され、更新できないときは
  8. このエラーは本当に何がエラーなのかをWordpressのチェックが判断できない場合に発生します。解決策としてはその画面を開き直すことなのですが、その際希に元のコードがすべて削除されてしまう場合がありますので、今表示されているコードを一旦どこかへコピーしてからページの再読み込みをするようにしてやり直します。
    ※このエラーは不明なエラーなので予期せぬ動きをする可能性がありますので特に慎重な対処が必要です
これらのエラー対処については以下のページが参考になるかも知れません

コードを転載する場合には

ご自身のサイトで当ページで紹介しているコードを転載される場合には当ページへのリンクを入れていただきますようお願いいたします

という行をすぐ下にコピペします。そして
  add_meta_box( 'comment_setting_in_page','コメントの設定', 'view_comment_custom_box', 'カスタム投稿タイプのスラグ', 'side' );
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. コードは合っているはずなのに更新できないときは
  6. 特にエラーの出た行内に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があり、Wordpressのエディタチェックではこれを「’」や「)」など閉じ子のエラーとして認識され更新できないことがあります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。
  7. 「何かが間違っています...」と表示され、更新できないときは
  8. このエラーは本当に何がエラーなのかをWordpressのチェックが判断できない場合に発生します。解決策としてはその画面を開き直すことなのですが、その際希に元のコードがすべて削除されてしまう場合がありますので、今表示されているコードを一旦どこかへコピーしてからページの再読み込みをするようにしてやり直します。
    ※このエラーは不明なエラーなので予期せぬ動きをする可能性がありますので特に慎重な対処が必要です
これらのエラー対処については以下のページが参考になるかも知れません

コードを転載する場合には

ご自身のサイトで当ページで紹介しているコードを転載される場合には当ページへのリンクを入れていただきますようお願いいたします

という風に「カスタム投稿スラグ」となっている場所へ実際のサイトにあるカスタム投稿タイプのスラグを入力して保存します。

設定はたったこれだけです。簡単ですね。

その他のカスタマイズも同様に「SEOボックス」なら

  add_meta_box( 'seo_setting_in_page','SEO設定', 'view_seo_custom_box', 'post', 'normal', 'high' );
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. コードは合っているはずなのに更新できないときは
  6. 特にエラーの出た行内に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があり、Wordpressのエディタチェックではこれを「’」や「)」など閉じ子のエラーとして認識され更新できないことがあります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。
  7. 「何かが間違っています...」と表示され、更新できないときは
  8. このエラーは本当に何がエラーなのかをWordpressのチェックが判断できない場合に発生します。解決策としてはその画面を開き直すことなのですが、その際希に元のコードがすべて削除されてしまう場合がありますので、今表示されているコードを一旦どこかへコピーしてからページの再読み込みをするようにしてやり直します。
    ※このエラーは不明なエラーなので予期せぬ動きをする可能性がありますので特に慎重な対処が必要です
これらのエラー対処については以下のページが参考になるかも知れません

コードを転載する場合には

ご自身のサイトで当ページで紹介しているコードを転載される場合には当ページへのリンクを入れていただきますようお願いいたします

をコピペして、「'post'」となっているところをカスタム投稿タイプのスラグ名にしていくだけです。

※このファイルは親テーマのサブディレクトリに入っているプログラムなので、子テーマを使っている場合でも親テーマ側で設定する必要があります(子テーマにコピーしてのテストはしていませんのでひょっとしたら動作するかもしれません)

※変更したら実際の投稿編集画面に表示されるか?そこに入力したり設定したものがきちんとソース上で反映されるか?を必ずチェックしてくださいね。

※一応後から「この項目あったはずなのに・・・」とならないように、すべての項目を追加しておくことをおすすめします。

※万が一編集に失敗したときのために、FTPなどで「custom-field.php」をパソコンへ保存してバックアップしておくことをおすすめします。

以上、分かってしまえば簡単すぎるカスタマイズでちょっと拍子抜け感がありますが、私と同じように【Simplicity】の投稿にある機能をカスタム投稿タイプでも使えるようにしたかった方の参考になれば幸いです。

余談ですが、「'post'(投稿)」「'page'(固定ページ)」となっている行のほかに「'topic'」となっている行があるのを不思議に思いませんでした?「'topic'」はWordpressの掲示板プラグインである【bbpress】を使ったときに作られるカスタム投稿タイプのスラグです。bbpressを有効化したらすぐに使えるように予め設定されているんですね。

WordPressで検索エンジン向けのサイトマップを作成するプラグイン「Google XML Sitemaps」

【Map Multi Marker】プラグインを日本語で使用するための翻訳ファイルダウンロードページ

【WordPress】変更履歴を削除して軽量化&高速化する方法


おまけ 複数の投稿タイプがある場合の便利な構文

たくさんのカスタム投稿タイプを使っている場合には前述したように1行1行追加しているととんでもない数になってしまいますよね?これを防ぐために魔法のコードを使います(別に魔法でもないような・・・)。

コメントボックスを例に挙げると前項の方法では

  add_meta_box( 'comment_setting_in_page','コメントの設定', 'view_comment_custom_box', '投稿タイプ', 'side' );
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. コードは合っているはずなのに更新できないときは
  6. 特にエラーの出た行内に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があり、Wordpressのエディタチェックではこれを「’」や「)」など閉じ子のエラーとして認識され更新できないことがあります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。
  7. 「何かが間違っています...」と表示され、更新できないときは
  8. このエラーは本当に何がエラーなのかをWordpressのチェックが判断できない場合に発生します。解決策としてはその画面を開き直すことなのですが、その際希に元のコードがすべて削除されてしまう場合がありますので、今表示されているコードを一旦どこかへコピーしてからページの再読み込みをするようにしてやり直します。
    ※このエラーは不明なエラーなので予期せぬ動きをする可能性がありますので特に慎重な対処が必要です
これらのエラー対処については以下のページが参考になるかも知れません

コードを転載する場合には

ご自身のサイトで当ページで紹介しているコードを転載される場合には当ページへのリンクを入れていただきますようお願いいたします

の「’投稿タイプ’」となっている場所にカスタム投稿スラグを入れるよう紹介しています。これをちょっとカスタマイズします。

  add_meta_box( 'comment_setting_in_page','コメントの設定', 'view_comment_custom_box', array('投稿タイプ','カスタム投稿タイプ2'), 'side' );
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. コードは合っているはずなのに更新できないときは
  6. 特にエラーの出た行内に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があり、Wordpressのエディタチェックではこれを「’」や「)」など閉じ子のエラーとして認識され更新できないことがあります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。
  7. 「何かが間違っています...」と表示され、更新できないときは
  8. このエラーは本当に何がエラーなのかをWordpressのチェックが判断できない場合に発生します。解決策としてはその画面を開き直すことなのですが、その際希に元のコードがすべて削除されてしまう場合がありますので、今表示されているコードを一旦どこかへコピーしてからページの再読み込みをするようにしてやり直します。
    ※このエラーは不明なエラーなので予期せぬ動きをする可能性がありますので特に慎重な対処が必要です
これらのエラー対処については以下のページが参考になるかも知れません

コードを転載する場合には

ご自身のサイトで当ページで紹介しているコードを転載される場合には当ページへのリンクを入れていただきますようお願いいたします

違い分かりますか?「投稿タイプ」となっているところが変わってますね。

array('投稿タイプ','カスタム投稿タイプ2')という形になっています。これは「'',」で連続しているものをすべて含めてね!という魔法?のコードです。これでどれだけカスタム投稿タイプがあっても1行で済みますね。

それなら元々ある「'post'」の行に書き足せば?と思うかもしれませんね。そう考えた方は正解です!!それでも動作はします。ただオリジナルなものは残しておいて、カスタマイズした部分は追記しておいた方が後で何かソースを確認する作業があったときに「同じソースがない!!」と悩むことを防ぐ意味合いがあるんです。まあ「私は大丈夫!!」という方はそのまま追加してもいいと思いますけどね。

どうですか?今回の設定でfunctions.phpへ追記したものや、プラグインのいくつかを削減することができそうです。

私は基本的にコメントはウェルカムなので凍結することはないですし、広告設定を変更することもほとんどありませんが、【SEO設定】と【更新タイプ】についてはプラグインとコード追加でやっていましたのでこれで削減できます(記事のメンテナンスが大変かな?)。特に
【SEO設定】のSEOタイトルはぜひ設定していきたい項目なのでがんばって設定したいと思います。

【SEO設定】の概要については本家Simplicityのサイト

で詳しく書かれています。

ひまあーと(管理人)
  • 記事の作者: ひまあーと(管理人)

  • ☆最後までお読みいただきありがとうございました。記事作者のひまあーとです。
    ☆Wordpressでサイトをカスタマイズしていく上で有用な情報を配信しつつ、「ココナラ」でサイトカスタマイズのお手伝い、不具合の修復、サイト引っ越し代行などをさせていただいております。
    ☆Wordpressネタが多いですが、趣味の「園芸」「卓球」などの情報や日々の出来事などもどんどん増やしていきますのでよろしくお願いいたします。


いつでもご相談・サイトカスタマイズの依頼を受け付けています

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。

※一度もココナラを使ったことがない方はココナラへの無料登録が必要です。こちらから登録後、上のリンクをクリックする、またはココナラトップページから「ひまあーと」を検索してお問い合わせください。


【スポンサーリンク】


記事の拡散にご協力をお願いします

閲覧いただきありがとうございました。役に立つ情報でしたら是非SNSでシェアをお願いします

関連情報