Хотелось бы без плагина. Не хочу лишних плагинов, тем более, я думаю это вполне возможно реализовать и без них.
В общем сделал форму поиска по произвольному полю и категориям, все работает и это уже хорошо, долго искал решение... Но остался еще один вопрос, как сделать выпадающий список дочерних категорий выбранной в первом списке рубрики. Т.е. как я понимаю надо без перезагрузки страницы считать ID категории выбранной в первом списке, записать в переменную $a и указать для второго списка child_of=$a. Но как это реализовать???
Вот имеющийся код:
<form name="search" action="" method="get">
<input type="text" value="" name="search" id="s" />
<?php wp_dropdown_categories( 'show_option_all=Все категории...' ); ?>
<select name="gorod">
< ?php
$metakey = 'gorod';
$gorod = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey) );
if ($gorod) {
foreach ($gorod as $gorod) {
echo "<option value="Ковров">Ковров</option><option value="Александров">Александров</option>";
}
?>
</select>
<input type="submit" value="Поиск" />
</form>
<?php
$counties = $_GET['gorod'];
$categor = $_GET['cat'];
$search = $_GET['search'];
if ($counties) {
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args=array(
's'=>$search,
'cat'=>$categor,
'meta_value' => $counties,
'paged'=>$paged,
);
query_posts($args);
else {
query_posts('cat=19&posts_per_page=4');
if ($counties) { ?>
<h3>Результат поиска по - <?php echo $counties; ?></h3>
<?php } else { ?>
<h3>Недавно добавленные</h3>
<?php }
if (have_posts()) : while (have_posts()) : the_post();
$event_gorod = get_post_meta($post->ID, 'gorod', true); ?>
<div class="entry">
<h2><a href="</php the_permalink(); ?>" title="< ?php the_title_attribute(); ?>">
<?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php echo $event_gorod; ?>
<a href="</php the_permalink(); ?>" title="< ?php the_title_attribute(); ?>"> Подробнее</a>
</div>
<?php endwhile; ?>
<?php else : ?>
<p>Извините, ничего не найдено</p>
<?php endif; ?>
<?php wp_reset_query(); ?>
Я не программист, поэтому мне сложно самому написать программу, я стараюсь найти готовые решения в интернете и подогнать под себя. Вот нашел, но что-то не ищет он по произвольным полям, только по категориям. Может подскажите где ошибка?
Выпадающий список в форме:
<select id="gorod" name="gorod">
<option value="kovrov">Ковров</option>
<option value="Владимир">Владимир</option>
функция:
add_action('pre_get_posts', 'search_by_tag');
function search_by_tag() {
global $wp_query;
if (is_search()) {
$meta_key = ‘gorod’;
$meta_value = intval($_GET['gorod']);
$wp_query->query_vars['meta_key'] = $meta_key;
$wp_query->query_vars['meta_value'] = $meta_value;
<?php if (is_404() or is_search() or is_attachment()) : ?> <meta name="robots" content="noindex, follow" /> <?php else : ?> <meta name="robots" content="index, follow" /> <?php endif; ?>
как я понял это спасет от попадания в индекс только страницы вида сайт.ru/название статьи/attachment/4/ так?
Я добавил в роботс Disallow: */attachment/ и теперь страницы с attachment не доступны, но страницы вида сайт.ру/название статьи/1 все равно доступны. Проверял анализом роботса в вебмастере яндекса.
И еще вопрос: сейчас проверил ссылки в изображениях ведут на медиафайл, а не на страницу вложений, может с начало и было по другому, но потом я отредактировал! Но яндекс почему-то их всеравно проиндексировал, хотя индексация сайта была задолго после редактирования. И еще, а почему индексируются страницы с русскими url, хотя я поменял все на латинские буквы? Может яндекс как-то запоздало индексирует, а потом все в норму придет?