複数のカテゴリとサブカテゴリを含む WP e コマース サイトを構築していますが、 1 つのアーカイブ ページでサブカテゴリのタイトルを削除する必要があります。
他のすべてのカテゴリとサブカテゴリのページには、引き続きサブカテゴリのタイトルが必要です。
どうもありがとう。
複数のカテゴリとサブカテゴリを含む WP e コマース サイトを構築していますが、 1 つのアーカイブ ページでサブカテゴリのタイトルを削除する必要があります。
他のすべてのカテゴリとサブカテゴリのページには、引き続きサブカテゴリのタイトルが必要です。
どうもありがとう。
更新- 2018 年 11 月
content-product_cat.php
そのための最も簡単な方法は、このサブカテゴリのタイトルがフックされている関連するテンプレートで使用するカスタム条件関数を作成することです。
1) 条件関数
そのコードは次のとおりです。
function is_parent_category( $subcategory_term, $parent_category_term_slug ) {
$parent_term = get_term( $subcategory_term->parent, $subcategory_term->taxonomy );
return $parent_term->slug == $parent_category_term_slug ? true : false;
}
このコードは、アクティブな子テーマ (またはテーマ) の function.php ファイル、または任意のプラグイン ファイルにも含まれます。
2) テーマ **content-product_cat.php
WooCommerce テンプレートを介してオーバーライドします。**
まだ行っていない場合は、アクティブな子テーマ (またはテーマ)内に
woocommerce
フォルダーを作成します。woocommerce
次に、プラグインフォルダーから、アクティブな子テーマ (またはテーマ)の新しく作成されたフォルダー内にあるtemplates
名前のファイルをコピーします。content-product_cat.php
woocommerce
このコピーしたcontent-product_cat.php
テンプレート ファイルを開いて編集します。
次の行を置き換えます。
do_action( 'woocommerce_shop_loop_subcategory_title', $category );
これで:
if( ! is_parent_category( $category, 'exterior-paving' ) ) {
do_action( 'woocommerce_shop_loop_subcategory_title', $category );
}
保存して完了です。これで、希望どおり、「paving-brands」アーカイブ ページのみのすべてのブランド タイトルが削除されます。
このコードはテスト済みで、完全に機能します。
追加: 複数の親カテゴリ スラッグの処理:
複数の親カテゴリのスラッグを処理するには、(スラッグの配列から)代わりに次を使用します。
function is_parent_category( $subcategory_term, $parent_category_term_slugs ) {
$parent_term = get_term( $subcategory_term->parent, $subcategory_term->taxonomy );
return in_array($parent_term->slug, $parent_category_term_slug ) ? true : false;
}
使用例:
// Reminder: $category is a WP_Term object
if ( is_parent_category( $category, array( 'clothing', 'posters' ) ) {
// Do something (matching subcategory)
} else {
// Do something else (no matching subcategory)
}