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

Frank Bueltge frank at bueltge.de
Fri Jul 23 11:53:14 UTC 2010


@jimmy: please check the GLOBALS-vars
if (is_admin() && $GLOBALS['PHP_SELF'] == '/wp-admin/edit.php' &&
isset($request['post_type']) && $request['post_type']=='ressource_fr')
{

i think, $GLOBALS['PHP_SELF'] is not '/wp-admin/edit.php'

maybe you change this to:
		function request($request) {
			global $pagenow;
			
			if ( is_admin() && 'edit.php' == $pagenow && isset(
$request['post_type'] ) && 'ressource_fr' == $request['post_type'] ) {

works now fine on my test

On Fri, Jul 23, 2010 at 1:36 PM, Jimmy Roy <jimmy.roy at gmail.com> wrote:
> actually at first it was name-classement-fr, then I change to try.
>
> the difference is :
> name=classement_fr : chose a custom taxonomy andclick on filter return all
> results in any case.
> name=classement-fr : chose a custom taxonomy andclick on filter return no
> result in any case.
>
> Jimmy
>
> 2010/7/23 Mike Schinkel <mikeschinkel at newclarity.net>
>
>> In http://pastebin.com/PL1FWtcs line 56 uses "name=classement_fr" whereas
>> line 64 uses "$request['classement-fr']" and they don't match.  Change line
>> 56 to be "name=classement-fr".
>>
>> -Mike
>>
>> On Jul 23, 2010, at 7:19 AM, Jimmy Roy wrote:
>>
>> > Mike,
>> > classement_fr is the name of the taxonomy.
>> > classement-fr is the value of the query_var argument.
>> >
>> > Jimmy
>> >
>> >
>> >
>> > 2010/7/23 Mike Schinkel <mikeschinkel at newclarity.net>
>> >
>> >> Jimmy,
>> >>
>> >> I just noticed, '[classement_fr] => 6' is not in your array.
>> >>
>> >> First try to use either "classement_fr" everywhere or "classement-fr"
>> and
>> >> see if that fixes it.
>> >>
>> >> -Mike
>> >>
>> >> On Jul 23, 2010, at 6:32 AM, Jimmy Roy wrote:
>> >>
>> >>> Array ( [order] => asc [orderby] => menu_order title [post_type] =>
>> >>> ressource_fr [posts_per_page] => -1 [posts_per_archive_page] => -1 )
>> >>>
>> >>> url after clicking "filter" button :
>> >>>
>> >>>
>> >>
>> http://localhost:8888/wp3.0/profperso/wp-admin/edit.php?s&post_status=all&post_type=ressource_fr&mode=list&action=-1&m=0&classement_fr=6&action2=-1
>> >>>
>> >>>
>> >>> 2010/7/23 Mike Schinkel <mikeschinkel at newclarity.net>
>> >>>
>> >>>> What do you get in the view source when you using this instead:
>> >>>>
>> >>>> function request($request) {
>> >>>>      print_r($request);
>> >>>>      exit;
>> >>>> }
>> >>>>
>> >>>> Also, what's your URL after clicking the "Filter" button?
>> >>>>
>> >>>> -Mike
>> >>>>
>> >>>>
>> >>>> On Jul 23, 2010, at 6:02 AM, Jimmy Roy wrote:
>> >>>>
>> >>>>> now, when I click on filter button the result is always the same, all
>> >>>> list
>> >>>>> of ressources.
>> >>>>>
>> >>>>> my code :
>> >>>>>
>> >>>>> add_action( 'init', 'register_profperso_taxonomies', 0 );
>> >>>>>
>> >>>>> 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' ),
>> >>>>> )
>> >>>>> );
>> >>>>> }
>> >>>>>
>> >>>>>
>> >>>>> // pour filtrer les ressources par classement
>> >>>>> 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&name=classement_fr');
>> >>>>> }
>> >>>>>
>> >>>>> add_action( 'request', 'my_request' );
>> >>>>> function my_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;
>> >>>>> }
>> >>>>>
>> >>>>> generated html :
>> >>>>> <select id="classement_fr" name="classement_fr"> <option
>> value="0">Show
>> >>>> All
>> >>>>> Classements FR</option> <option value="5">Langue oral</option>
>> <option
>> >>>> value
>> >>>>> ="6">Niveau 1</option> <option value="7">Niveau 2</option> <option
>> >>>> value="8
>> >>>>> ">Niveau 3</option> </select><input type="submit"
>> >> id="post-query-submit"
>> >>>>> value="Filtrer" class="button-secondary" />
>> >>>>> _______________________________________________
>> >>>>> 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
>>
>> _______________________________________________
>> 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