Kimb0t
Kimb0t

Reputation: 3

WP Custom Widget <ul> tag is outside

i have a problem with Wordpress. I created a new plugin. I created a widget for my website. When I try to reflect the data, the ul tag stays outside.

    public function widget( $args, $instance ) {
$title = apply_filters( 'widget_title', $instance['title'] );

// before and after widget arguments are defined by themes
echo $args['before_widget'];
if ( ! empty( $title ) )
echo $args['before_title'] . $title . $args['after_title'];


echo '<ul class="categoryarea">' . __( wp_list_categories( array('hide_empty' => 0, 'exclude' => 1, 'title_li' => __( false )))) . '</ul>'; // Problem is here. line
echo $args['after_widget'];
}

Output html image ;

ul tag is outside (image)

Output html code ;

<li class="cat-item cat-item-10">...</li>
<li class="cat-item cat-item-11">...</li>
<li class="cat-item cat-item-20">...</li>
<li class="cat-item cat-item-12">...</li>
<li class="cat-item cat-item-13">...</li>
<li class="cat-item cat-item-14">...</li>
<li class="cat-item cat-item-15">...</li>
<li class="cat-item cat-item-16">...</li>
<li class="cat-item cat-item-17">...</li>
<li class="cat-item cat-item-18">...</li>
<li class="cat-item cat-item-19">...</li>
<ul class="categoryarea"></ul> <-- Problem here

what I need is;

<ul class="categoryarea">
<li class="cat-item cat-item-10">...</li>
<li class="cat-item cat-item-11">...</li>
<li class="cat-item cat-item-20">...</li>
<li class="cat-item cat-item-12">...</li>
<li class="cat-item cat-item-13">...</li>
<li class="cat-item cat-item-14">...</li>
<li class="cat-item cat-item-15">...</li>
<li class="cat-item cat-item-16">...</li>
<li class="cat-item cat-item-17">...</li>
<li class="cat-item cat-item-18">...</li>
<li class="cat-item cat-item-19">...</li>
</ul> <-- I need help

Thank you in advance for your interest.

Upvotes: 0

Views: 197

Answers (1)

Musk
Musk

Reputation: 1477

There is an argument key echo that is set 1 by default in the function.

echo '<ul class="categoryarea">' . __( wp_list_categories( array('hide_empty' => 0, 'exclude' => 1, 'echo' => 0, 'title_li' => __( false )))) . '</ul>'; // should fix

Also you might want to remove the __(); since this is for translation and usually you would not translate the html generated but the categories themselves, which would be done through other means.

Reference

https://developer.wordpress.org/reference/functions/wp_list_categories/

Upvotes: 1

Related Questions