私は現在category.phpの中で、特定のカテゴリにサブカテゴリがあるかどうかをチェックし、持っていればwp_list_categoriesを使ってそれらを表示するコードを持っています。
これらのwp_list_categoriesを使用してサムネイルを表示したいので、新しいウォーカーを作成しましたが、サムネイルを表示する方法がわかりません。
このカテゴリの最新のカスタム投稿タイプのおすすめ画像を表示するか、プラグインを使用しても問題ありません。
私は現在、functions.phpに次のウォーカーを持っています。
class Walker_Category_Parents extends Walker_Category {
function start_el(&$output, $category, $depth, $args) {
global $wpdb;
extract($args);
$link2 = ''.$category->slug.'';
$cat_name = esc_attr( $category->name );
$cat_name = apply_filters( 'list_cats', $cat_name, $category );
$link = '<a href="' . esc_attr( get_term_link($category) ) . '" ';
$link .= 'title="' . esc_attr( strip_tags( apply_filters( 'category_description', $category->description, $category ) ) ) . '"';
$link .= 'rel="'.$category->slug.'" ';
$link .= '>';
$link .= $cat_name . '</a>';
if ( 'list' == $args['style'] ) {
$output .= "\t<li";
$children = $wpdb->get_results( "SELECT term_id FROM $wpdb->term_taxonomy WHERE parent=".$category->term_id );
$children_count = count($children);
$has_children = ($children_count != 0) ? ' parent-category' : '';
$class = 'cat-item cat-item-' . $category->term_id . $has_children;
if ( !empty($current_category) ) {
$_current_category = get_term( $current_category, $category->taxonomy );
if ( $category->term_id == $current_category )
$class .= ' current-cat';
elseif ( $category->term_id == $_current_category->parent )
$class .= ' current-cat-parent';
}
$output .= ' class="' . $class . '"';
$output .= ">$link\n";
$output .= "<img src='http://localhost/wp-content/themes/vom13/images/producten/";
$output .= "$link2.png'>\n";
} else {
$output .= "\t$link<br />\n";
}
}
}
ご覧のように、現在フォルダ内の画像を検索していますが、カテゴリを追加するのは私だけではないので、これは絶対に理想的ではありません。
解決策はありますか?
ありがとうございます。
Taxonomy Images という素晴らしいプラグインがあります。カテゴリごとに1つの画像を設定してから、さまざまな方法でアクセスできます。
それはそれが画像を返すためにいくつかのカスタムフィルタを使用するという点で少しファンキーです、しかしドキュメンテーションはかなりよく、あなたはそれを理解することができるはずです。
== UPDATE ==これはIDに基づいて画像を取得する簡単な例です(私はあなたがあなたのスニペットに既に持っている$category
オブジェクトがあると仮定しています:
$images = get_option('taxonomy_image_plugin');
$cat_id = $category->term_taxonomy_id;
if( array_key_exists( $cat_id, $images ) ) {
echo wp_get_attachment_image( $images[$cat_id] );
}
これが やや拡張されたバージョン サポートフォーラムのそのコードの/です。