web-dev-qa-db-ja.com

分類法のサムネイルのURLを取得する

これは私が現在試みている方法です:

$taxonomies = array( 
   'product_cat'
);
$args = array(
   'orderby'           => 'name', 
   'order'             => 'ASC',
   'hide_empty'        => false, 
   'exclude'           => array(), 
   'exclude_tree'      => array(), 
   'include'           => array(),
   'number'            => '', 
   'fields'            => 'all', 
   'slug'              => '',
   'parent'            => '',
   'hierarchical'      => true, 
   'child_of'          => 0,
   'childless'         => false,
   'get'               => '', 
   'name__like'        => '',
   'description__like' => '',
   'pad_counts'        => false, 
   'offset'            => '', 
   'search'            => '', 
   'cache_domain'      => 'core'
); 

$terms = get_terms($taxonomies, $args);
$print_terms = 0;
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
   foreach ( $terms as $term ) {
     $term_img = wp_get_attachment_url( get_post_thumbnail_id($term->term_id) );
     var_dump($term_img); /* Allways Bool(false) */

質問は

あなたは私が間違っていることを知っていますか?

4

Woocommerceによって設定された画像、

誰かが必要とする場合には、これが私のやり方です

$thumb_id = get_woocommerce_term_meta( $term->term_id, 'thumbnail_id', true );
$term_img = wp_get_attachment_url(  $thumb_id );
7

分類法には、デフォルトでサムネイル画像はありません。それらがどのように設定されているかを知らずに私はサムネイルを取得する方法を正確に言うことはできませんが、 "私は何を間違っているのですか?" get_post_thumbnail_idpostIDを受け入れるか、ループ内の現在の投稿を前提としていません。あなたはそれにterm_idを渡していますが、これはうまくいきません。あなたはソースでそれを見ることができます:

32  function get_post_thumbnail_id( $post_id = null ) {
33          $post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
34          return get_post_meta( $post_id, '_thumbnail_id', true );
35  }

term_idがたまたま投稿IDと一致したとしても、何かを手に入れることができますが、それはあなたが望むものや期待するものにはならないでしょう。

2
s_ha_dum

Woocommerceはカテゴリ画像とそのURLを取得する必要はありません。

$categories = get_categories();

foreach($categories as $cat) {

    $image_id = get_term_meta( $cat->term_id, 'thumbnail_id', true );
    $post_thumbnail_img = wp_get_attachment_image_src( $image_id, 'thumbnail' );

    echo '<img src="' . $post_thumbnail_img[0] . '" alt="' . $cat->name . '" />';

}

$ post_thumbnail_imgは、キー0がURL、1 =幅、2 =高さの配列です。

また、「サムネイル」の代わりに次のいずれかを使用することもできます(おすすめ、中、大、またはその他のテーマのカスタム画像サイズ)。ただし、 'thumbnail_id'はそのままにしておく必要があります。

また、 カスタム関数 を使用して "alt"、 "title"などの画像メタデータを取得し、これをさらに拡張することもできます。

上記は、ループ内でget_categoriesに引数を指定する方法を知っていることを前提としています。しかし、そうでない場合は、WPの get_categories を見てください。

0
Dario Zadro