Как вы не предоставили любой код, я пытался в мой путь .I догадку, это не лучший способ достичь его , но как сейчас, вы можете сделать таким образом.
Здесь я использовал PHP
для достижения вашего желаемого результата.
Я использовал Двадцать четырнадцать тема search.php
.
Вот моего код для search.php
двадцать Четырнадцать темы и вы можете реализовать в вашем search file
:
<?php
/**
* The template for displaying Search Results pages
*
* @package WordPress
* @subpackage Twenty_Fourteen
* @since Twenty Fourteen 1.0
*/
get_header(); ?>
<section id="primary" class="content-area">
<div id="content" class="site-content" role="main">
<?php if (have_posts()) : ?>
<header class="page-header">
<h1 class="page-title"><?php printf(__('Search Results for: %s', 'twentyfourteen'), get_search_query()); ?></h1>
</header><!-- .page-header -->
<?php
// Start the Loop.
$post_id_array = array(); //Blank array to store all Post IDs
while (have_posts()) : the_post();
array_push($post_id_array, $post->ID); //store ID to array
/*
* Include the post format-specific template for the content. If you want to
* use this in a child theme, then include a file called called content-___.php
* (where ___ is the post format) and that will be used instead.
*/
get_template_part('content', get_post_format());
endwhile;
// Previous/next post navigation.
twentyfourteen_paging_nav();
$catarray = array(); //Blank array to store all categories
$k=1;
foreach($post_id_array as $my_post){
$my_category = get_the_category($my_post);
foreach($my_category as $my_cat){
array_push($catarray, $my_cat->cat_name); //Store category in array
}
$something = array_count_values($catarray); //Count total number of element in category array
foreach(array_unique($catarray) as $some){
if($k == sizeof($my_category)): //Condition to print all thing if only it is last element of an array.
echo $some."(". $something[$some].")<br>";
endif;
}
$k++;
}
else :
// If no content, include the "No posts found" template.
get_template_part('content', 'none');
endif;
?>
</div><!-- #content -->
</section><!-- #primary -->
<?php
get_sidebar('content');
get_sidebar();
get_footer();
Здесь, в приведенном выше коде, я сделал:
Шаг-1 : Возьмите один пустой массив для хранения Идентификатор сообщений, которые задаются поисковым запросом.
Шаг 2: Нажмите все идентификаторы , чтобы созданный пустого массива с array_push
функции PHP. ПРИМЕЧАНИЕ: Убедитесь, что вы положили его в while loop
, чтобы получить все ID
.
После два шага, теперь у вас есть массив всех почтовых идентификаторов.
Шаг 3: Возьмите другой пустой массив для хранения связанных названия категории поста.
Шаг 4:. Возьмем одну переменную и дать его значение к 1
, который является полезным в конце (я принял $k = 1
).
Шаг 5: сделать одну foreach
петлю Post идентификаторов. И получить Категория названия сообщений с функцией wordpress get_the_category
. It will fetch category based on post ID
.
Шаг 6: Теперь пришло время использованияпустой массив, что мы создали для категории name.So только loop
через категории имени и магазин имя категории в к массива ,
Шаг 7: Граф всего имен в категории массива с array_count_values
функции PHP и назначить переменную к нему (я использовал $something
)..
После step-7 у нас есть массив категории. Примечание: Здесь в этом массиве может быть дублирование категории name.To удалить дублирование Следуйте за следующим шагом.
Шаг 8: 'array_unique' Используйте функцию PHP, чтобы получить только уникальное значение из массива.
Шаг 9: Сделать loop
имени категории.
Если вы echo
прямо сейчас, it will print categories to total number of post times
.
Так что теперь его подходящее время для использования переменных, которую мы сделали, прежде чем foreach
петли столбика ID ($k=1
).
Последнего шаг: Теперь сделайте одно условием для печати всех категорий в последнем сообщении.
Для этого я использовал if($k == sizeof($my_category))
, что означает, что оно будет печататься только в том случае, если длина массива категории равна переменной K
(Короче говоря, в конце).
Increas e Значение $k
.
Надеюсь, это поможет вам. Спросите меня, если у вас есть сомнения.
Привет, Рохил, большое вам спасибо за такой подробный ответ. Да, я не вводил никакого кода, потому что я был действительно невежественным, поэтому ставить что-то на мой вопрос было бы более запутанным, чем помогать. Я предпочел оставить вещи, начиная с стандартной петли, чтобы облегчить ситуацию. Я тестировал код, он еще не работал для меня, я удалил все, что у меня было, и вставил его так же, как вы его отправили, я просто заменил вызов шаблонов контента, потому что у меня их нет, но ничего не произошло. Все, что я получаю, это сообщение, полученное из цикла, но это все. Я все равно буду пытаться. – Jaypee
Ok сделал это, проблема, с которой я сейчас сталкиваюсь, заключается в том, что я получаю много результатов поиска в категории «Лос-Анджелес», но все, что я получаю, это «Лос-Анджелес (1)» – Jaypee
Привет, Рохил, у меня есть два сомнения если вы не возражаете. Что я должен изменить, чтобы поместить этот код за пределы цикла (сначала мои фильтры), и как мне сделать, чтобы включить ссылку на категории (я никогда не работал с array_push() или array_unique() раньше). – Jaypee