フロントページタイプ「タブ一覧」の新着記事を非表示にする方法

Cocoonカスタマイズ集
この記事は約3分で読めます。
記事内に広告が含まれています。

記事に記載したコードは、スキンに追加されています。

はじめに

フロントページタイプを「タブ一覧」に設定すると、デフォルトで「新着記事」タブが表示されます。

そこで、「新着記事」タブを非表示にし、2番目のタブを初期表示するよう変更します。

この記事では、この方法について説明します。

完成イメージ

実装手順

以下の手順で実装します。

  • ラベル
    Cocoon設定

    表1に示す項目を設定します。

    Cocoon設定
    設定大項目項目設定値
    インデックスリスト設定フロントページタイプタブ一覧
  • ラベル
    JavaScriptを追加

    以下のコードをjavascript.jsに追加します。
    2番目のタブを初期表示にします。

    jQuery(function ($) {
      $("#index-tab-2").prop('checked', true);
    });
  • ラベル
    CSSを追加

    以下のコードをstyle.cssに追加します。
    1番目のタブ「新着記事」を非表示にします。

    .index-tab-button[for=index-tab-1], .tab-cont.tb1 {
      display: none;
    }

参考:PHPで実装する場合

PHPを用いて同様の処理を行う方法もあります。
1番目のタブに関連する要素を全て削除し、2番目のタブを初期表示に設定します。

以下のコードをfunctions.phpに追加します。

add_filter('cocoon_part__tmp/list-tab-index', function ($content) {
  if (empty($content)) {
    return $content;
  }

  $rules = [
    [
      'search'  => '/<input id="index-tab-1" type="radio" name="tab_item" checked>/',
      'replace' => '',
    ],
    [
      'search'  => '/<label class="index-tab-button" for="index-tab-1">.*?<\/label>/s',
      'replace' => '',
    ],
    [
      'search'  => '/<div class="tab-cont tb1">.*?(?=<div class="tab-cont tb2">)/s',
      'replace' => '',
    ],
    [
      'search'  => '/<input id="index-tab-2" type="radio" name="tab_item">/',
      'replace' => '<input id="index-tab-2" type="radio" name="tab_item" checked>',
    ],
  ];

  foreach ($rules as $rule) {
    $content = preg_replace($rule['search'], $rule['replace'], $content);
  }

  return $content;
});

参考:フロントページタイプ「カテゴリーごと」の新着記事を非表示にする方法

CSSで実装する場合

以下のコードをstyle.cssに追加します。

.list-new-entries {
  display: none;
}

PHPで実装する場合

以下のコードをfunctions.phpに追加します。

add_filter('cocoon_part__tmp/list-new-entries',function () {
  return '';
});

さいごに

今回紹介した方法を使えば、「新着記事」タブを非表示にし、2番目のタブを初期表示にするカスタマイズが簡単に実現できます。
自分のサイトに合ったデザインを手軽に調整できるので、ぜひ試してみてください。

タイトルとURLをコピーしました