WordPress раскрывающиеся категории как радио поля - PullRequest
1 голос
/ 12 апреля 2020

Я пытаюсь сделать wp_dropdown_categories по умолчанию выбрать выпадающий список в качестве радиовхода с кнопкой отправки.

Это на переднем крае.

<form id="filter-select" class="filter-select" action="<?php echo esc_url( home_url( '/' ) ); ?>" method="get">
   <?php wp_dropdown_categories(); ?>
   <input type="submit" name="submit" value="view" />
</form>

Тогда в моих функциях. php Я пытался сделать это

add_filter( 'wp_dropdown_cats', 'dropdown_filter', 10, 2);

function dropdown_filter( $output, $r ) {
    $output = preg_replace( '/<option/i', '<input type="radio"', $output );

    $output = str_replace( 'class="level-0"', 'name="filter"', $output );
    $output = str_replace( "value=\"{$value}\"", "value=\"{$value}\" selected", $output );

    return $output;
}

Это на самом деле работает при замене выпадающего списка выбора для радиополя. Но это на самом деле не работает правильно.

Вместо перехода в / category / CATEGORYNAME - как в окне выбора по умолчанию.

Идет /? Filter = 6 & submit = view

Любой совет очень ценится, спасибо вы.

1 Ответ

1 голос
/ 13 апреля 2020

Попробуйте использовать пользовательский Walker для вывода названий категорий вместо идентификаторов.

<div class="radiobuttons">
<?php
$args = array(
  'orderby' => 'name',
  'hide_title_if_empty' => true,
  'title_li' => '',
  'walker' => new List_Categories_Radiobuttons
);
wp_list_categories( $args );
?>
</div>

Пользовательские функции Walker. php:

/**
 * Custom Walker to list categories with radio buttons
 */
class List_Categories_Radiobuttons extends Walker_Category {
  function start_el(&$output, $category, $depth=0, $args=array()) {
    $category_name = esc_attr( $category->name );
    $radiobutton = '<input type="radio" name="filtercategory" value="' . $category_name . '">';
    $output .= '<div class="radiobutton">' . $radiobutton;
  }
  function end_el(&$output, $category, $depth=0, $args=array()) {
    $output .= "</div>\n";
  }
}  

Указывает ли это на правильное направление?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...