Back to Community

How to Enable Simple Custom Post Order for Hidden or Missing Post Types

17 threads Sep 7, 2025 PluginSimple custom post order

Content

Many WordPress users rely on the Simple Custom Post Order (SCPO) plugin to manage the display order of their content. A common hurdle occurs when a specific custom post type (CPT) or taxonomy doesn't appear in the plugin's settings page, making it impossible to enable drag-and-drop sorting for it. This article explains why this happens and provides the most effective solutions.

Why Are Some Post Types Missing from SCPO Settings?

The SCPO settings screen uses specific WordPress parameters to determine which post types and taxonomies to list. By default, it queries for items that have both 'show_ui' => true and 'show_in_menu' => true. Many plugins and themes register post types for internal use that have their admin UI enabled (show_ui) but are hidden from the main admin menu (show_in_menu' => false). Because they fail the second check, these post types are excluded from the SCPO settings list. Popular examples include Advanced Custom Fields (ACF) Field Groups and post types from other plugins like Pods.

Solution 1: Enable the "Show advanced view of Post Types" Option

The simplest fix is often already built into the plugin. The 'Simple Custom Post Order' team has included an option specifically for this scenario.

  1. Navigate to Settings > SCPOrder.
  2. Locate and check the box for "Show advanced view of Post Types".
  3. Save your changes.
  4. Refresh the page. You should now see a much longer list of available post types, including those that were previously hidden.
  5. Check the boxes for the post types and taxonomies you wish to sort and save again.

This option modifies the internal query to show post types that were previously hidden, often resolving the issue without any code changes.

Solution 2: Modify the Plugin Code (Advanced)

If the advanced view option does not reveal your specific post type, a code modification is a proven workaround, as reported by multiple users in the support forums. This involves editing a core plugin file.

Warning: This change will be overwritten whenever the plugin is updated. You will need to reapply it after each update.

  1. Access your WordPress installation files via FTP, SFTP, or your hosting provider's file manager.
  2. Navigate to /wp-content/plugins/simple-custom-post-order/.
  3. Open the file settings.inc in a code editor.
  4. Find the following lines of code (around line 29):
    $post_types = get_post_types(array(
        'show_ui' => true,
        'show_in_menu' => true,
    ), 'objects');
  5. Comment out or remove the 'show_in_menu' => true, line. The code should look like this afterwards:
    $post_types = get_post_types(array(
        'show_ui' => true,
        //'show_in_menu' => true,
    ), 'objects');
  6. Save the file and upload it back to your server, overwriting the old one.
  7. Return to Settings > SCPOrder. Your previously missing post types should now be visible and available for selection.

Solution 3: Programmatically Enable Sorting via functions.php

For developers or users comfortable with code, the most update-proof solution is to programmatically add your desired post types to the SCPO options. This method survives plugin updates.

The following code snippet, based on solutions shared in the plugin's support threads, can be added to your theme's functions.php file. Replace 'your_custom_post_type' and 'your_custom_taxonomy' with the actual names of your post type and taxonomy.

/**
 * Programmatically enable Simple Custom Post Order for specific post types and taxonomies.
 */
add_action('init', 'bugwp_scpo_enable_for_cpt');
function bugwp_scpo_enable_for_cpt() {
    
    // Check if the SCPO plugin is active
    if (!is_plugin_active('simple-custom-post-order/simple-custom-post-order.php')) {
        return;
    }
    
    // Get the current SCPO options
    $scpo_options = get_option('scporder_options');
    
    // Define the post types and taxonomies you want to enable
    $my_post_types = array('your_custom_post_type', 'post', 'page');
    $my_taxonomies = array('your_custom_taxonomy', 'category');
    
    // Update the options, merging your choices with any existing ones
    if ($scpo_options === false) {
        // If no options exist, create them
        update_option('scporder_options', array(
            'objects' => $my_post_types,
            'tags' => $my_taxonomies
        ));
    } else {
        // If options exist, merge the arrays and avoid duplicates
        if (!empty($scpo_options['objects'])) {
            $scpo_options['objects'] = array_unique(array_merge($scpo_options['objects'], $my_post_types));
        } else {
            $scpo_options['objects'] = $my_post_types;
        }
        
        if (!empty($scpo_options['tags'])) {
            $scpo_options['tags'] = array_unique(array_merge($scpo_options['tags'], $my_taxonomies));
        } else {
            $scpo_options['tags'] = $my_taxonomies;
        }
        
        // Save the updated options back to the database
        update_option('scporder_options', $scpo_options);
    }
}

Conclusion

The inability to find a post type in SCPO's settings is a known configuration issue, not a bug. The most user-friendly solution is to first try the built-in "Show advanced view of Post Types" option. If that fails, the code modification is a reliable temporary fix, while the programmatic method is the best long-term solution for developers. According to GitHub activity, the 'Simple Custom Post Order' team is aware of this behavior and may address it in a future update.

Related Support Threads Support