hamel

Рейтинг
43
Регистрация
02.11.2009

Хотелось бы без плагина. Не хочу лишних плагинов, тем более, я думаю это вполне возможно реализовать и без них.

В общем сделал форму поиска по произвольному полю и категориям, все работает и это уже хорошо, долго искал решение... Но остался еще один вопрос, как сделать выпадающий список дочерних категорий выбранной в первом списке рубрики. Т.е. как я понимаю надо без перезагрузки страницы считать 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(); ?>

Polkan:
hamel, используйте wp_list_categories()

Я не программист, поэтому мне сложно самому написать программу, я стараюсь найти готовые решения в интернете и подогнать под себя. Вот нашел, но что-то не ищет он по произвольным полям, только по категориям. Может подскажите где ошибка?

Выпадающий список в форме:

<select id="gorod" name="gorod">

<option value="kovrov">Ковров</option>

<option value="Владимир">Владимир</option>

</select>

функция:

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;

}

Flector:
в header.php добавьте

<?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, хотя я поменял все на латинские буквы? Может яндекс как-то запоздало индексирует, а потом все в норму придет?