mirror of
https://git.sindominio.net/estibadores/wordpress.git
synced 2024-11-23 02:51:06 +01:00
75 lines
2.5 KiB
PHP
75 lines
2.5 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* /lib/class-relevanssi-taxonomy-walker.php
|
||
|
*
|
||
|
* @package Relevanssi
|
||
|
* @author Mikko Saari
|
||
|
* @license https://wordpress.org/about/gpl/ GNU General Public License
|
||
|
* @see https://www.relevanssi.com/
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* A taxonomy walker used in Relevanssi interface.
|
||
|
*
|
||
|
* This is needed for wp_terms_checklist() in the Relevanssi admin interface to
|
||
|
* control the way the taxonomies are listed.
|
||
|
*/
|
||
|
class Relevanssi_Taxonomy_Walker extends Walker_Category_Checklist {
|
||
|
/**
|
||
|
* Name of the input element.
|
||
|
*
|
||
|
* @var string $name Name of the input element.
|
||
|
*/
|
||
|
public $name;
|
||
|
|
||
|
/**
|
||
|
* Creates a single element of the list.
|
||
|
*
|
||
|
* @see Walker::start_el()
|
||
|
*
|
||
|
* @param string $output Used to append additional content (passed by reference).
|
||
|
* @param object $category Category data object.
|
||
|
* @param int $depth Optional. Depth of category in reference to parents. Default 0.
|
||
|
* @param array $args Optional. An array of arguments. See wp_list_categories(). Default empty array.
|
||
|
* @param int $id Optional. ID of the current category. Default 0.
|
||
|
*/
|
||
|
public function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) {
|
||
|
if ( empty( $args['taxonomy'] ) ) {
|
||
|
$taxonomy = 'category';
|
||
|
} else {
|
||
|
$taxonomy = $args['taxonomy'];
|
||
|
}
|
||
|
|
||
|
$name = $this->name;
|
||
|
|
||
|
if ( ! isset( $args['popular_cats'] ) ) {
|
||
|
$args['popular_cats'] = array();
|
||
|
}
|
||
|
|
||
|
if ( ! isset( $args['selected_cats'] ) ) {
|
||
|
$args['selected_cats'] = array();
|
||
|
}
|
||
|
|
||
|
$class = '';
|
||
|
$inner_class = '';
|
||
|
|
||
|
if ( ! empty( $args['list_only'] ) ) {
|
||
|
$aria_checked = 'false';
|
||
|
$inner_class = 'category';
|
||
|
|
||
|
/** This filter is documented in wp-includes/category-template.php */
|
||
|
$output .= "\n" . '<li' . $class . '>' .
|
||
|
'<div class="' . $inner_class . '" data-term-id=' . $category->term_id .
|
||
|
' tabindex="0" role="checkbox" aria-checked="' . $aria_checked . '">' .
|
||
|
esc_html( apply_filters( 'the_category', $category->name ) ) . '</div>';
|
||
|
} else {
|
||
|
/** This filter is documented in wp-includes/category-template.php */
|
||
|
$output .= "\n<li id='{$taxonomy}-{$category->term_id}'$class>" .
|
||
|
'<label class="selectit"><input value="' . $category->term_id . '" type="checkbox" name="' . $name . '[]" id="in-' . $taxonomy . '-' . $category->term_id . '"' .
|
||
|
checked( in_array( strval( $category->term_id ), $args['selected_cats'], true ), true, false ) .
|
||
|
disabled( empty( $args['disabled'] ), false, false ) . ' /> ' .
|
||
|
esc_html( apply_filters( 'the_category', $category->name ) ) . '</label>';
|
||
|
}
|
||
|
}
|
||
|
}
|