1

woocommerce プラグインを使用して、Wordpress テーマにカスタマイズを追加しようとしています。商品の上部または左側にカテゴリのリストを表示するように、ショップ ページのスタイルを設定しようとしています。woocommerce 管理者設定のカタログ ページからカテゴリ オプションを有効にすると、content_product_cat2.php テンプレート ファイルを利用して、woocommerce 製品ループ内に製品カテゴリのサムネイルが表示されます。そのphpファイルを移動し、編集を開始して結果を取得しました。サムネイルを削除しましたが、タイトルをグリッド形式またはループの外に出すことができません。私は自分の functions.php にいくつかのフックを追加することにオープンですが、woocommerce フック リファレンスにはフックが追加されているように見えませんでした。おそらく、このテンプレートを編集し、フックを使用してループの前に配置することの組み合わせです。ここにページへのリンクがあります。私はそれを使用しています.phpファイルの内容は次のとおりです。

<?php
/**
 * The template for displaying product category thumbnails within loops.
 *
 * Override this template by copying it to yourtheme/woocommerce/content-product_cat.php
 *
 * @author      WooThemes
 * @package     WooCommerce/Templates
 * @version     1.6.4
 */




global $woocommerce_loop;

// Custom Edits

if ( is_shop() && in_array( $category->slug, array( 'fakeie' ) ) ) {
return;
}


// Store loop count we're currently on
if ( empty( $woocommerce_loop['loop'] ) )
$woocommerce_loop['loop'] = 0;

// Store column count for displaying the grid
if ( empty( $woocommerce_loop['columns'] ) )
$woocommerce_loop['columns'] = apply_filters( 'loop_shop_columns', 4 );

// Increase loop count
$woocommerce_loop['loop']++;
?>
<li class="product <?php
if ( $woocommerce_loop['loop'] % $woocommerce_loop['columns'] == 0 )
    echo 'last';
elseif ( ( $woocommerce_loop['loop'] - 1 ) % $woocommerce_loop['columns'] == 0 )
    echo 'first';
?>">

<?php do_action( 'woocommerce_before_subcategory', $category ); ?>

<a href="<?php echo get_term_link( $category->slug, 'product_cat' ); ?>">

    

    <h3 style="float:left;">
        <?php echo $category->name; ?>
        <?php if ( $category->count > 0 ) : ?>
            <mark class="count">(<?php echo $category->count; ?>)</mark>
        <?php endif; ?>
    </h3>

    <?php
        /**
         * woocommerce_after_subcategory_title hook
         */
        do_action( 'woocommerce_after_subcategory_title', $category );
    ?>

</a>

<?php do_action( 'woocommerce_after_subcategory', $category ); ?>

</li>

みんなありがとう...誰かがこれを経験したことを知っています。

編集-わかりましたので、 content_product_cat.php ファイルを編集することはおそらく最善の方法ではないことに気付きました。Jay は content_product.php ファイルを編集する方が良いと以下に述べています。最初はこれも良い解決策だと思っていましたが、やりたいことを達成できないことに気づきました。content_product.php を編集すると、ループ内でのみ編集が行われ、ループのグリッド形式に収まらないように、ループの前にカテゴリを表示する必要があります.....新しいアイデアはありますか???

4

2 に答える 2

1

functions.php に次のように追加できます。

add_action('woocommerce_before_shop_loop','showcats');


function showcats()
{
    //list terms in a given taxonomy using wp_list_categories (also useful as a widget if using a PHP Code plugin)

$taxonomy     = 'product_cat';
$orderby      = 'name';
$show_count   = 0;      // 1 for yes, 0 for no
$pad_counts   = 0;      // 1 for yes, 0 for no
$hierarchical = 1;      // 1 for yes, 0 for no
$title        = '';

$args = array(
  'taxonomy'     => $taxonomy,
  'orderby'      => $orderby,
  'show_count'   => $show_count,
  'pad_counts'   => $pad_counts,
  'hierarchical' => $hierarchical,
  'title_li'     => $title
);

?>
<ul>
<?php wp_list_categories( $args ); ?>
</ul>
<?
}

function showcatlist()
{
    if(is_shop()) showcats();
}   

関数 showcats はhttp://wordpress.org/support/topic/plugin-woocommerce-excelling-ecommerce-category-listから採用されています。詳しくはhttp://codex.wordpress.org/Template_Tags/wp_list_categoriesをご覧ください。リストのスタイルを変更するには、次のように読みます。

title_li パラメータを空の文字列に設定すると、最も外側の項目とリストを削除できます。出力を順序付きリスト (ol) または順序なしリストでラップする必要があります (上記の例を参照)。リスト出力がまったく必要ない場合は、style パラメータを none に設定します。

wp_list_categories の代わりに、get_categories http://codex.wordpress.org/Function_Reference/get_categoriesを使用して、HTML 出力を自分で作成することもできます。これは、最初に正しい答えを提供したJay Bhattと同じです。

于 2013-09-09T21:59:05.510 に答える