I have solved the main query:

For WordPress dashboard, I needed the list of all posts related to all post types in:


Using the concept of:


With function in backend function.php

function show_all_posttypes( $query ) {
    if( ! is_admin() ) {

    if( isset( $_GET, $_GET['showall'] ) && true == $_GET['showall'] ) {
        $query->set( 'post_type', array('product', 'second_type_product', 'third_type_product') );

add_filter( 'pre_get_posts', 'show_all_posttypes' );

And after that my all posts related to three post types: product, second_type_product, third_type_product is listing very well on URL:


But when I am using its feature to filter on edit.php page with all listed posts then is saying:

Invalid post type

I want to achieve every feature support with my list related to multiple post types list on url based on one post type.

Thanks for support!

  • 1
    Did you try adding a check for $query->is_main_query()? Oct 18 '16 at 21:25
  • I think it is one of the thing I need to solve this issue, but not the solution. Oct 19 '16 at 9:18
  • @brianjohnhanna Just test the code without that check, it works. Oct 20 '16 at 16:13

Invalid Post Type might be shown,whenever you have a mistake(type or etc..) in 'product', 'second_type_product', 'third_type_product' . Ensure that you have correct words there.

  • I used the code above and a fresh install of wordpress, and it worked just fine. The only issue was that a couple warnings popped up because there are some pieces of edit.php that do not work with an array of post types, tries to print out the array as a string. Otherwise, @tazo's solution should be correct.
    – socki03
    Oct 19 '16 at 17:07
  • @tazo-todua Just test the code without wrong types included, it works. Oct 20 '16 at 16:14

I would debug it like following:

  • Check where the error is being thrown - This almost for certain in the wp-admin/edit.php file - debug the $post_type variable there
  • Try to set the post type variable in your pre_get_posts query correctly

Furthermore, it would be nice if you could share some code with which I can test your problem.


Your code is fine. From the error message and the URL parameters, I can guess there is not CPT product in your install, it would work if you replace use any post types registered (post, page, ...) or added a CPT product (by installing WooCommerce for example).

And by the way, I believe you are replacing all posts listing pages on the dashboard with the same page that lists product, second_type_product and third_type_product. Are you sure this is what you want?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.