Opened 11 months ago

Last modified 2 weeks ago

#21165 new enhancement

Make categories widget work with custom taxonomies

Reported by: scribu Owned by:
Priority: normal Milestone: Future Release
Component: Widgets Version:
Severity: normal Keywords: has-patch
Cc: fonglh, code@…

Description

The tag cloud widget already has a taxonomy dropdown.

We should add one for the categories widget as well.

Attachments (5)

21165.diff (3.2 KB) - added by fonglh 11 months ago.
21165.2.diff (5.2 KB) - added by fonglh 11 months ago.
Second draft. Fixed issues mentioned by scribu.
21165.3.diff (5.2 KB) - added by fonglh 11 months ago.
Changed default value of 'select_name' label from 'Select Taxonomy' to 'Select Category'
21165.4.diff (4.8 KB) - added by fonglh 11 months ago.
Changed description back to original wording
21165.5.diff (4.5 KB) - added by fonglh 11 months ago.
Removed value of 'select_name' for category as it is the same as the default value

Download all attachments as: .zip

Change History (24)

  • Keywords has-patch added

First draft. Replicated taxonomy dropdown of the tag cloud widget to the categories widget.

comment:2 follow-up: ↓ 5   scribu11 months ago

Hey fonglh, thanks for the patch. There are two issues with it, though:

  1. The $tax->show_tagcloud check is not appropriate. I think we could use $tax->is_hierarchical instead.
  1. Some translations need to change the order of the words, so appending strings doesn't work well for them:
__('Select ') . get_taxonomy( $current_taxonomy )->labels->singular_name;

I guess we'll have to introduce a new 'select' label to register_taxonomy(), so that we can do this:

get_taxonomy( $current_taxonomy )->labels->select;

Oh, and duck_ pointed out that _get_current_taxonomy() should default to 'category' not 'categories'.

Second draft. Fixed issues mentioned by scribu.

comment:4 follow-up: ↓ 8   fonglh11 months ago

Hey scribu, thanks for the feedback. I've fixed the issues you mentioned.

For the second one, I've introduced a new label 'select_name' with a default value of 'Select Taxonomy'.

comment:5 in reply to: ↑ 2 ; follow-up: ↓ 7   kobenland11 months ago

Replying to scribu:

I guess we'll have to introduce a new 'select' label to register_taxonomy(), so that we can do this:

get_taxonomy( $current_taxonomy )->labels->select;

Why not use sprintf( _x( 'Select %s', 'taxonomy singular name' ), get_taxonomy( $current_taxonomy )->labels->singular_name );?

Version 0, edited 11 months ago by kobenland (next)

comment:6 follow-up: ↓ 9   kobenland11 months ago

On a different note:

This is the Category Widget we're talking about - not the Taxonomy Widget. It would make more sense, if we'd make a separate widget for it. And with it being a separate Widget, it'd be debatable whether this is better released as a Plugin...

comment:7 in reply to: ↑ 5   SergeyBiryukov11 months ago

Replying to kobenland:

<?php
sprintf( _x( 'Select %s', 'taxonomy singular name' ), get_taxonomy( $current_taxonomy )->labels->singular_name );

A simple sprintf() is not enough due to different grammatical cases, see ticket:19099:1 or ticket:17609:3.

comment:8 in reply to: ↑ 4   scribu11 months ago

Replying to fonglh:

For the second one, I've introduced a new label 'select_name' with a default value of 'Select Taxonomy'.

'Select Taxonomy' isn't correct, because the dropdown won't contain taxonomies, but terms. So, a more accurate default would be 'Select Term'.

But, since the other default labels use 'Category' instead of 'Term', I think we should stick to 'Select Category'.

Last edited 11 months ago by scribu (previous) (diff)

Changed default value of 'select_name' label from 'Select Taxonomy' to 'Select Category'

comment:9 in reply to: ↑ 6   fonglh11 months ago

  • Cc fonglh added

Replying to kobenland:

On a different note:

This is the Category Widget we're talking about - not the Taxonomy Widget. It would make more sense, if we'd make a separate widget for it. And with it being a separate Widget, it'd be debatable whether this is better released as a Plugin...

Since categories are treated as a type of taxonomy, maybe it'll be better to rename the widget the Taxonomy Widget instead? I don't think there's a need for 2 widgets.

Conversely, to the average user, a hierarchical taxonomy is just another set of categories. We should keep the "Categories" name for the widget.

Ok then, is there anything else that has to be improved?

The description confuses terms and taxonomies again:

"A list or dropdown of categories or custom taxonomies"

Correct would be:

"A list or dropdown of categories or of custom taxonomy terms"

although I'm not sure it's necessary. The tag cloud widget doesn't mention custom taxonomies either.

Changed description back to original wording

I decided to leave the wording as it currently is:

"A list or dropdown of categories"

The correct version seems to be a bit of a mouthful, although it's a more accurate description.

Last edited 11 months ago by fonglh (previous) (diff)
  • Milestone changed from Awaiting Review to 3.5

Ok, just one more thing: These lines are not necessary anymore:

	46	                'labels' => array( 
 	47	                        'select_name' => __( 'Select Category' ) 
 	48	                ), 

Removed value of 'select_name' for category as it is the same as the default value

Ok, I've removed them from the function call of register_taxonomy() when 'category' is registered.

I don't mind this, but I wish we could get away without a new taxonomy label for it.

Maybe we could get away with an empty 'show_option_none'.

  • Milestone changed from 3.5 to Future Release
  • Cc code@… added
Note: See TracTickets for help on using tickets.