Я работаю над поиском в wordpress. Я хочу искать текст в нескольких категориях. Вот мой кодПоиск сообщений, основанных на нескольких категориях WordPress
<form method="post" action="<?php bloginfo('home');?>/?ptype=catsearch" >
<input type="text" name="searchtext" size="40" />
<h2><?php _e('Categories:'); ?></h2>
<select name="category[]" multiple='multiple'>
<option value=""><?php echo esc_attr(__('Please Select Your Choice')); ?></option>
<?php $categories= get_categories('show_count=0&orderby=name&echo=0&hierarchical=true&depth=1&taxonomy=category&exclude=1');
foreach ($categories as $category) {
$option = "<option value=$category->term_id>";
$option .= ucfirst($category->cat_name);
$option .= '</option>';
echo $option;
}
?>
</select>
<input type="submit" id="searchsubmit" value="Search" name="submit"/>
</form>
когда ФОМС сообщения на catsearch.php файл я принимаю все categoryids в массиве и создать URL см ниже код. если выбрано несколько категорий, он создает URL-адрес, например http://abcd.com/?cat=3&cat=7&cat=8&s=dasdasDS
. В этом случае он ищет текст только в последнем идентификаторе cat. Я думаю, что это превосходит кошки. Мне нужно, если текст поиска найден в любой категории, тогда все сообщения должны отображаться.
$categoryids = $_POST['category'];
echo 'count is ---' .count($categoryids);
if($categoryids)
{
foreach($categoryids as $categoryid)
{
$cat.= 'cat='.$categoryid.'&';
}
echo $cat = trim($cat, '&');
echo '<br />';
$url .= '?'.$cat;
}
if($_POST['searchtext'])
{
echo 'searchtext---'. $_POST['searchtext'];
echo '<br />';
$url .= '&s='.$_POST['searchtext'];
}
<META http-equiv="refresh" content="1;URL=<?php echo get_bloginfo('url')."$url"; ?>">
Спасибо за ваш ответ. После публикации этих вопросов я получил этот путь. –
Пожалуйста, также дайте мне одно предложение. Чтобы получить правильные результаты поиска, сначала отправьте форму на странице, затем создайте URL-адрес и перенаправляйте созданный URL-адрес, используя «" (как вы можете видеть код). Это хороший способ, или у нас есть другой хороший способ сделать это. ?? –