Показывать это облако тегов как выпадающее меню

89
5

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

Он переходит в фильтр ajax, поэтому выпадающее меню должно выводить те же ссылки и значения ect, однако в выпадающем формате вместо облака тегов, который он в настоящее время производит.

/**
* Job Tag cloud shortcode
*/
public function job_tag_cloud( $atts ) {
ob_start();

$atts = shortcode_atts( array(
'smallest' => 16,
'largest' => 16,
'unit' => 'pt',
'number' => 45,
'format' => 'flat',
'separator' => "\n",
'orderby' => 'count',
'order' => 'DESC',
'exclude' => null,
'include' => null,
'link' => 'view',
'taxonomy' => 'job_listing_tag',
'echo' => false,
'topic_count_text_callback' => array( $this, 'tag_cloud_text_callback' )
), $atts );

$html = wp_tag_cloud( apply_filters( 'job_tag_cloud', $atts ) );

if ( ! apply_filters( 'enable_job_tag_archives', get_option( 'job_manager_enable_tag_archive' ) ) ) {
$html = str_replace( '</a>', '</span>', preg_replace( "/<a(.*)href='([^'']*)'(.*)>/", '<span$1$3>', $html ) );
}

return $html;
}

спросил(а) 2015-06-29T12:32:00+03:00 5 лет, 2 месяца назад
1
Решение
57

Вы можете использовать атрибут format:

Облако возвращено как массив, но не отображается

Тег переменной $ будет содержать облако тегов для использования в другом PHP-коде

<?php $tag = wp_tag_cloud( 'format=array' ); ?>

(Источник: Руководство WP)

Подумайте о том, чтобы использовать var_dump() для возвращаемого массива, чтобы понять его структуру, после чего вы можете просто использовать foreach loop и пропустить теги и построить dropdown список.

ответил(а) 2015-06-29T12:48:00+03:00 5 лет, 2 месяца назад
41

Вам нужен foreach

PHP

foreach($atts as $row => $value) {
echo"<option value='$value'>$row</option>";
}

Веб-сайт, который вы связали, использует раскрывающийся список jQuery с поиском в реальном времени, вы можете сделать это с помощью плагина jQuery следующим образом: http://www.jqueryrain.com/?S5JKymV5

Если вы используете jQuery для отображения ваших данных в раскрывающемся списке, вам нужно ввести параметр/параметр с уникальным идентификатором (id = "myDropdown") и назначить его сценарию jQuery.


Пример Предполагая, что вы используете плагин fuzzyDropdown

Html и PHP

<div id="fuzzSearch">
<div id="fuzzNameContainer">
<span class="fuzzName"></span>
<span class="fuzzArrow"></span>
</div>
<div id="fuzzDropdownContainer">
<input type="text" value="" class="fuzzMagicBox" placeholder="search.." />
<span class="fuzzSearchIcon"></span>
<ul id="fuzzResults">
</ul>
</div>
</div>
<select id="myDropdown">
<?php foreach($atts as $row => $value) {
echo"<option value='$value'>$row</option>";
}?>
</select>

Javascript

$('#myDropdown').fuzzyDropdown({
mainContainer: '#fuzzSearch',
arrowUpClass: 'fuzzArrowUp',
selectedClass: 'selected',
enableBrowserDefaultScroll: true
});

ответил(а) 2015-06-29T14:14:00+03:00 5 лет, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема