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

Frank Bueltge frank at bueltge.de
Fri Jul 23 09:41:33 UTC 2010


Thanks Mike - works very fine!


On Fri, Jul 23, 2010 at 11:24 AM, Mike Schinkel
<mikeschinkel at newclarity.net> wrote:
> 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
>
> _______________________________________________
> 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