Поддержка Проблемы и решения Использование 2 терм — как поиск по сайту

  • Здравствуйте.
    Создаю интернет-ресурс — каталог предприятий. Планируется, что страницы Предприятий будут размещены на статичных страницах wordpress-а (post). Для ухода от длинных url-ов и неразберихи в метках (tag), было принято решение создать несколько таксономий (с термами), которые будут играть роль:
    — Городов (Москва, Тверь и т.д.);
    — Направления производства (сахарный завод, кирпичный завод и т.д.);
    — Продукции производства (кирпичи, бетон, сметана, фары и т.д.);

    Цель: вывести в шапку два списка терм (города и направления производства) и кнопку поиск. Чтоб посетитель смог выбрав одно из двух, или оба «условия поиска» нажал кнопку, и нашёл (в выдаче) искомое производство — в искомом городе.

    Для этого я использовал следующий код:

    <div class="vidy">
            <h3>Вид производителя</h3>
    <form method="GET" style="margin-right: 20px;border: 1px solid silver;float: left;">
    <select name="id_catalog_price" id="sel1" onchange="this.forms.submit()" style="border-radius: 0;height: 30px;width: 350px; border:none;">        
    <?php 
    $args = array( 'hide_empty=0' );
    $terms = get_terms('raznovidnost', $args);
    
    // собираем их и выводим
    if ( !empty( $terms ) && !is_wp_error( $terms ) ) {
    	$count = count($terms);
    	$i=0;
    	$term_list = '<ul class="vidy">';
    	foreach ($terms as $term) {
    		$i++;
    		$term_list .= '<option><a href="' . get_term_link( $term ) . '" title="' . sprintf(__('View all post filed under %s', 'my_localization_domain'), $term->name) . '">' . $term->name . '</a></option>';
    		if ($count != $i) {
    
    		}
    		else {
    			$term_list .= '</ul>';
    		}
    	}
    	echo $term_list;
    }
    
    ?>
    </select>
    </form>
      </div>
    		
    <div class="goroda">
    <h3>Города </h3>
    <form method="GET" style="margin-right: 20px;border: 1px solid silver;float: left;">
    <select name="id_catalog_price" id="sel1" onchange="this.forms.submit()" style="border-radius: 0;height: 30px;width: 350px; border:none;"> 
    <?php 
    $args = array( 'hide_empty=0' );
    $terms = get_terms('region', $args);
    
    // собираем их и выводим
    if ( !empty( $terms ) && !is_wp_error( $terms ) ) {
    	$count = count($terms);
    	$i=0;
    	$term_list = '<ul class="goroda">';
    	foreach ($terms as $term) {
    		$i++;
    		$term_list .= '<option><a href="' . get_term_link( $term ) . '" title="' . sprintf(__('View all post filed under %s', 'my_localization_domain'), $term->name) . '">' . $term->name . '</a></option>';
    		if ($count != $i) {
    
    		}
    		else {
    			$term_list .= '</ul>';
    		}
    	}
    	echo $term_list;
    }
    
    ?>
    </select>
    </form>
    
    </div>
    

    Но он не работает. Не даёт выдачу. Может кто может помочь ?

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • Дежа вю

    • Ответ изменён 5 лет, 1 месяц назад пользователем O.

    Дежа вю. Или нарушение правил форума. Дубль
    Не внимательный вы, мил человек. Либо читаете очень много, и без устали.

    — В том вопросе была задача: показывать термы — просматриваемой страницы. Проблема решена.
    — Здесь — вопрос фильтра термов таксономий.

    Модератор Yuri

    (@yube)

    Но он не работает.

    Вполне ожидаемо. Если пихать в код чего попало, то и делать он будет что попало 😉
    Попробуйте объяснить, что и как он должен выводить и что должно происходить и по какому событию, какую ссылку формировать и почему эта ссылка должна вывести то, что Вам хочется видеть. Возможно, тогда сами увидите, что не так.

    И еще по htmlным мелочам: внутри <ul> могут быть только <li>, а <option> должны располагаться непосредственно внутри <select> или <optgroup>, а что должно быть внутри самого тега <option> и каковы его атрибуты, выясните самостоятельно. Азы html не являются темой данного форума. Могу порекомендовать сайт htmlbook.ru.

    на статичных страницах wordpress-а (post).

    а?
    Страница — page.
    Запись — post.

    https://codex.wordpress.org/Post_types#Default_Post_Types (с гуглопереводом можно понять эти азы. А так же можно погуглить и найти кучу материалов по-русски)

    Странно. Неделю назад, задавал вопрос. Получил ответ типа — пиши более развернуто и понятно.
    В этот раз написал все понятно. Опять какие-то придирки к «орфографическим ошибкам» и ёрничество.

    Господа-товарищи-коллеги — Вы на всех темах форума, в таком виде, «помощь» оказываете ???

    В этот раз написал все понятно.

    Для Вас, но не для других.
    Думаете Юрий от скуки попросил уточнить?

    Опять какие-то придирки к «орфографическим ошибкам» и ёрничество.

    Где Вы это увидели интересно?

    SeVlad (@sevlad) — я не пришел сюда чтоб подчеркнуть чье-нибудь высокомерие, траурное отношению к автору вопроса, или кому-либо намекать что он «поймал корону и летает в облаках» !)))
    Если кто либо из модераторов устал или ему надоело вести форум, и отвечать на вопросы пользователей, помогать авторам вопросов, — лучше такому админу уйти с этого форума, ну или пойти отдохнуть, нежели строить здесь какой-то междусабойчик, исходя из мыслей «я умнее всех !!! кому захочу — тому подскажу». Как-то низко это — для такой глобально-используемой платформы.
    Вы так не думаете ???

    Если кто либо из модераторов устал или ему надоело вести форум, и отвечать на вопросы пользователей,

    Модераторы — это те кто следит за порядком на форуме.
    Отвечают же волонтёры.

    Вы так не думаете ???

    Я уже думая Вы хотите что-то доказать, а не научиться и решить проблему.
    Вместо того, чтобы отвечать на наводящие вопросы — Вы начинаете «учить жить».

    И пож, не нужно пинговать (писать ник через @)

    SeVlad

    Модераторы — это те кто следит за порядком на форуме.
    Отвечают же волонтёры.

    Как-то не подумал об этом. Раз уж вы не волонтёр, а Модератор, то вот это ваше:

    а?
    Страница — page.
    Запись — post.

    Оставьте для тех — с кем можете лицом к лицу встретится.

    И ещё, коли вы не волонтёр, не надо вмешиваться и умничать в топиках форума, в этом топике уж точно. Вместо самоутверждения — следите, пожалуйста, за порядком.

    Раз уж вы не волонтёр, а Модератор,

    Если Вы пешеход — не делайте сайты.
    А если Вы ещё не поняли — модератор точно такой же пользователь на форуме, как и все остальные. Только наделённый некоторыми обязанностями и техническими возможностями для их исполнения.

    не надо вмешиваться и умничать в топиках форума

    Ок. Постараюсь Вас запомнить и воздерживаться от оказания Вам помощи.

    Ок. Постараюсь Вас запомнить и воздерживаться от оказания Вам помощи.

    Я надеюсь !)))

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • Тема «Использование 2 терм — как поиск по сайту» закрыта для новых ответов.