Вставьте HTML внутри ссылки в ходунки

У меня есть пользовательский навигатор, который (теоретически) извлекает изображение с самого последнего сообщения в пользовательской таксономии и отображает изображение после ссылки в wp_list_categories .

Проблема в том, что мне нужно изображение для отображения над именем категории в пределах ссылки. Я не могу понять, как это сделать.

Это мой пользовательский ходок:

 class CategoryThumbnailWalker extends Walker_Category { function start_el(&$output, $category, $depth, $args) { parent::start_el(&$output, $category, $depth, $args); $posts = get_posts(array( "child_of" => $category->term_id, // may need to be disabled; we'll see "post_type" => "projects", "project-category" => $category->slug, )); if ($posts) { foreach ($posts as $post) { if (has_post_thumbnail($post->ID)) { $output .= get_the_post_thumbnail($post->ID, "gallery-small"); } else { $output .= "<img alt=\"No image available\" src=\"" . get_template_directory_uri() . "/img/no-image.jpg\" />"; } break; } } else { $output .= "<img alt=\"No image available\" src=\"" . get_template_directory_uri() . "/img/no-image.jpg\" />"; } } } 

и вот мой wp_list_categories :

 $category = $wp_query->get_queried_object_id(); wp_list_categories(array( "child_of" => $category, "depth" => 1, "hide_empty" => false, "hierarchical" => 1, "orderby" => "name", "pad_counts" => 0, "post_type" => "projects", "show_count" => 0, "show_option_none" => "", "taxonomy" => "project-category", "title_li" => "", "walker" => new CategoryThumbnailWalker() )); 

И вот что все это выдает:

 <li class="cat-item cat-item-13"> <a href="http://christopherconsultants.myweblinx.net/project-category/education/" title="View all posts filed under Education"> Education </a> <img alt="No image available" src="http://img.wordpressask.com/custom-post-types/no-image.jpg"> </li> 

Solutions Collecting From Web of "Вставьте HTML внутри ссылки в ходунки"

Вы можете попробовать пропустить CategoryThumbnailWalker и использовать вместо этого фильтр list_cats .

Вот непроверенный пример:

 add_filter( 'list_cats', 'wpse_149898_list_cats', 99, 2 ); wp_list_categories(array( "child_of" => get_queried_object_id(), "depth" => 1, "hide_empty" => false, "hierarchical" => 1, "orderby" => "name", "pad_counts" => 0, "post_type" => "projects", "show_count" => 0, "show_option_none" => "", "taxonomy" => "project-category", "title_li" => "", )); remove_filter( 'list_cats', 'wpse_149898_list_cats', 99, 2 ); 

где

 /** * Prepend the featured image, from the most recent project * in a custom taxonomy, to the term name. * * @param string $cat_name * @param object $category * @return string */ function wpse_149898_list_cats( $cat_name, $category ) { $posts = get_posts( array( 'post_type' => 'projects', 'posts_per_page' => 1, 'meta_key' =>'_thumbnail_id', 'project-category' => $category->slug, ) ); $img = sprintf( "<img alt=\"No image available\" src=\"%s/img/no-image.jpg\" />", get_template_directory_uri() ); if ( $posts ): foreach ( $posts as $post ) { if ( has_post_thumbnail( $post->ID ) ) $img = get_the_post_thumbnail( $post->ID, 'gallery-small' ); } endif; return $img . $cat_name; } 

Результат должен (надеюсь) быть таким:

 <li class="cat-item cat-item-13"> <a href="http://christopherconsultants.myweblinx.net/project-category/education/" title="View all posts filed under Education"> <img alt="No image available" src="http://img.wordpressask.com/custom-post-types/no-image.jpg"> Education </a> </li>