web-dev-qa-db-ja.com

ホームページにwoocommerceの全カテゴリのタイトルを表示する

どのように私は私のテーマですべてのwoocommerceカテゴリのタイトルを表示することができますカスタムフィールド値です。

ベローのようなhtmlの例

<li><a href="#">
          <div>
            <h2>category title</h5>
            <h3>custom field one value</h6>
          </div>
          <div class="imgpos">custom field two value</div>
          </a></li>

私は多くの方法を試してみましたが、まだ成功していません

<?php
$post_type = 'product';
// Get all the taxonomies for this post type
$taxonomies = get_object_taxonomies( (object) array( 'post_type' => $post_type ) );
foreach( $taxonomies as $taxonomy ) : 
    // Gets every "category" (term) in this taxonomy to get the respective posts
    $terms = get_terms( $taxonomy );
    foreach( $terms as $term ) : 
        $posts = new WP_Query( "taxonomy=$taxonomy&term=$term->slug&posts_per_page=2" );
        if( $posts->have_posts() ): while( $posts->have_posts() ) : $posts->the_post();
          ?>
          <a href="<?php the_permalink(); ?>"><span><?php the_title(); ?></span></a><br><br>
          <?php
        endwhile; endif;
    endforeach;
endforeach;
?>

UPDATE 1 /以下のコードは私にカテゴリのタイトルとリンクを与えるだけでコスチュームフィールド値も取得する方法を理解することはできません

<?php
$args = array(
    'number'     => $number,
    'orderby'    => 'title',
    'order'      => 'ASC',
    'hide_empty' => $hide_empty,
    'include'    => $ids
);
$product_categories = get_terms( 'product_cat', $args );
$count = count($product_categories);
if ( $count > 0 ){
    foreach ( $product_categories as $product_category ) {
        echo '<h4><a href="' . get_term_link( $product_category ) . '">' . $product_category->name . '</a></h4>';
        $args = array(
            'posts_per_page' => -1,
            'tax_query' => array(
                'relation' => 'AND',
                array(
                    'taxonomy' => 'product_cat',
                    'field' => 'slug',
                    // 'terms' => 'white-wines'
                    'terms' => $product_category->slug
                )
            ),

        );

    }
}

?>

カスタム値コードを取得するための例は以下になります。私はdivの内側にフィットしたい

 <?php if( get_field('hexagon_thumbnail') ): ?>

    <img src="<?php the_field('hexagon_thumbnail'); ?>" />

<?php endif; ?>
3
pagol007
<?php

$post_type = 'product';

$taxonomies = get_object_taxonomies((object) array( 'post_type' => $post_type ));

foreach ($taxonomies as $taxonomy) : 

    $terms = get_terms($taxonomy);

    foreach ($terms as $term) : 

        $term_link = get_term_link($term->term_id);

        $posts = new WP_Query( "taxonomy=$taxonomy&term=$term->slug&posts_per_page=2" ); ?>

        <li>

            <h2>
                <a href="<?php echo $term_link; ?>"><?php echo $term->name; ?></a>
            </h2>

            <?php 

            if( $posts->have_posts() ): while( $posts->have_posts() ) : $posts->the_post(); ?>

                <div>

                <?php if( get_field('hexagon_thumbnail') ): ?>

                    <img src="<?php the_field('hexagon_thumbnail'); ?>" />

                <?php endif; ?>

                </div>

            <?php endwhile; endif; ?>

        </li> <!-- end list item -->

<?php endforeach; endforeach; ?>
1
userabuser

製品ループでACFの値を取得するには、製品のACF、または製品カテゴリのACFの2番目のパラメータとしてproduct_cat_ {term_id}が続く場合、製品のIDを渡す必要があります。 the_fieldまたはget field関数.

0
user101626