[wp-hackers] Custom Post Type in Admin, filter by new custom Taxonomies

Mike Schinkel mikeschinkel at newclarity.net
Fri Jul 23 09:24:34 UTC 2010


Why were you inconsistent?  'classement_fr' vs. 'classement-fr'?  That just ensure you are going to generate confusion and make things harder on yourself.

Try:

function request($request) {
	if (isset($request['post_type']) && $request['post_type']=='ressource_fr') {
		$request['taxonomy'] = 'classement_fr';
		$request['term'] = get_term($request['classement-fr'],'classement_fr')->name;
		unset($request['name']);
	} 
	return $request;
}

-Mike

On Jul 23, 2010, at 4:52 AM, Jimmy Roy wrote:

> may it will help, this is the code to define my custom taxonomy :
> 
> function register_profperso_taxonomies() {
> 
> register_taxonomy(
> 'classement_fr',
> array( 'ressource_fr' ),
> array(
> 'public' => true,
> 'hierarchical' => true,
> 'labels' => array(
> 'name' => __( 'Classements FR' ),
> 'singular_name' => __( 'Classement FR' )
> ),
> 'query_var' => 'classement-fr',
>        'rewrite' => array( 'slug' => 'cours-fr' ),
> )
> );
> 
> --
> Jimmy | www.jimmyroy.fr
> --
> 
> 
> 
> 2010/7/23 Jimmy Roy <jimmy.roy at gmail.com>
> 
>> still "no result" when I click on filter button.
>> 
>> I try your last code + :
>> function my_restrict_manage_posts() {
>> global $typenow;
>> if ($typenow=='ressource_fr')
>> //echo get_taxonomy_html_select( 'classement_fr' );
>> wp_dropdown_categories( 'show_option_all=Afficher
>> tout&show_count=1&hierarchical=1&taxonomy=classement_fr');
>> //wp_dropdown_categories( 'show_option_all=Afficher
>> tout&show_count=1&hierarchical=1&taxonomy=classement_fr');
>> }
>> 
>> and + :
>> function my_restrict_manage_posts() {
>> global $typenow;
>> if ($typenow=='ressource_fr')
>> //echo get_taxonomy_html_select( 'classement_fr' );
>> wp_dropdown_categories( 'show_option_all=Afficher
>> tout&show_count=1&hierarchical=1&taxonomy=classement_fr');
>> //wp_dropdown_categories( 'show_option_all=Afficher
>> tout&show_count=1&hierarchical=1&taxonomy=classement_fr&name=classement-fr');
>> }
>> 
>> --
>> Jimmy | www.jimmyroy.fr
>> --
>> 
>> 
>> 
>> 2010/7/23 Mike Schinkel <mikeschinkel at newclarity.net>
>> 
>>> Sorry, I forgot there's something else needed in your use-case.  Try
>>> adding this (I think it will work):
>>> 
>>> add_action( 'request', 'my_request' );
>>> function my_request($request) {
>>>       if (is_admin() && $GLOBALS['PHP_SELF'] == '/wp-admin/edit.php' &&
>>> isset($request['post_type']) && $request['post_type']=='ressource_fr') {
>>>               $request['taxonomy'] = 'classement-fr';
>>>               $request['term'] =
>>> get_term($request['classement-fr'],'classement-fr')->name;
>>>               unset($request['name']);
>>>       }
>>>       return $request;
>>> }
>>> 
>>> There actually may be an easier way (I really hope there is) and if so
>>> others please tell me.
>>> 
>>> -Mike
>>> 
>>> 
>>> On Jul 23, 2010, at 4:24 AM, Jimmy Roy wrote:
>>> 
>>>> finally no... the result is still the same, when I click on filter : "no
>>>> result".
>>>> 
>>>> Jimmy
>>>> 
>>>> 
>>>> 2010/7/23 Jimmy Roy <jimmy.roy at gmail.com>
>>>> 
>>>>> the generated code is :
>>>>> 
>>>>> <select class="postform" id="cat" name="classement-fr">
>>>>> <option selected="selected" value="0">Afficher tout</option>
>>>>> <option value="5" class="level-0">Langue oral&nbsp;&nbsp;(4)</option>
>>>>> <option value="6" class="level-1">&nbsp;&nbsp;&nbsp;Niveau
>>>>> 1&nbsp;&nbsp;(2)</option>
>>>>> <option value="7" class="level-1">&nbsp;&nbsp;&nbsp;Niveau
>>>>> 2&nbsp;&nbsp;(1)</option>
>>>>> <option value="8" class="level-1">&nbsp;&nbsp;&nbsp;Niveau
>>>>> 3&nbsp;&nbsp;(1)</option>
>>>>> </select>
>>>>> 
>>>>> the id is "cat", like if a regular category, so I add the name
>>> parameter
>>>>> in wp_dropdown_categories and assign to this parameter the query_var
>>> value
>>>>> of the custom taxonomy :
>>>>> 
>>>>> wp_dropdown_categories( 'show_option_all=Afficher
>>>>> 
>>> tout&show_count=1&hierarchical=1&taxonomy=classement_fr&name=classement-fr');
>>>>> 
>>>>> now when I click on filter... the result is always all my ressources !
>>>>> 
>>>>> 
>>>>> --
>>>>> Jimmy | www.jimmyroy.fr
>>>>> --
>>>>> 
>>>>> 
>>>>> 
>>>>> 2010/7/23 Jimmy Roy <jimmy.roy at gmail.com>
>>>>> 
>>>>> thank u Mike and Scribu, I wrote a mix of your solutions :
>>>>>> 
>>>>>> add_action( 'restrict_manage_posts', 'my_restrict_manage_posts' );
>>>>>> 
>>>>>> function my_restrict_manage_posts() {
>>>>>> global $typenow;
>>>>>> if ($typenow=='ressource_fr')
>>>>>> wp_dropdown_categories( 'show_option_all=Afficher
>>>>>> tout&show_count=1&hierarchical=1&taxonomy=classement_fr');
>>>>>> }
>>>>>> 
>>>>>> but when I click on 'filter' the result is always ... "no result".
>>>>>> 
>>>>>> Jimmy
>>>>>> 
>>>>>> 
>>>>>> 2010/7/23 Mike Schinkel <mikeschinkel at newclarity.net>
>>>>>> 
>>>>>> On Jul 23, 2010, at 3:35 AM, scribu wrote:
>>>>>>>>> Are you sure?  Unless I misunderstand what Jimmy is asking I think
>>> it
>>>>>>> can
>>>>>>>>> be done in the "restrict_manage_posts" hook.
>>>>>>>> 
>>>>>>>> Indeed. Also, he can use wp_dropdown_categories() instead of
>>> creating
>>>>>>> the
>>>>>>>> select manually.
>>>>>>> 
>>>>>>> Thanks. :)
>>>>>>> 
>>>>>>> No matter how hard I try, I can't keep track of every function in the
>>>>>>> library!  Maybe the new 3.org will help.
>>>>>>> 
>>>>>>> -Mike
>>>>>>> _______________________________________________
>>>>>>> wp-hackers mailing list
>>>>>>> wp-hackers at lists.automattic.com
>>>>>>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>> _______________________________________________
>>>> wp-hackers mailing list
>>>> wp-hackers at lists.automattic.com
>>>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>>> 
>>> _______________________________________________
>>> wp-hackers mailing list
>>> wp-hackers at lists.automattic.com
>>> http://lists.automattic.com/mailman/listinfo/wp-hackers
>>> 
>> 
>> 
> _______________________________________________
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-hackers



More information about the wp-hackers mailing list