Using WordPress ‘remove_post_type_support()’ PHP function

The remove_post_type_support() WordPress PHP function removes support for a specific feature from a post type.

Usage

remove_post_type_support( $post_type, $feature );

Example:

remove_post_type_support( 'page', 'editor' );

This will remove the editor feature from the ‘page’ post type.

Parameters

  • $post_type (string) – The post type for which to remove the feature.
  • $feature (string) – The feature being removed.

More information

See WordPress Developer Resources: remove_post_type_support()

Examples

Hide page visual editor if certain template is selected

This code removes the visual editor for pages with a specific template (e.g. ‘page-your-template.php’).

add_action( 'init', 'remove_editor_init' );
function remove_editor_init() {
  // If not in the admin, return.
  if ( ! is_admin() ) {
    return;
  }

  // Get the post ID
  $current_post_id = filter_input( INPUT_GET, 'post', FILTER_SANITIZE_NUMBER_INT );
  $update_post_id = filter_input( INPUT_POST, 'post_ID', FILTER_SANITIZE_NUMBER_INT );

  // Check to see if the post ID is set
  if ( isset( $current_post_id ) ) {
    $post_id = absint( $current_post_id );
  } else if ( isset( $update_post_id ) ) {
    $post_id = absint( $update_post_id );
  } else {
    return;
  }

  // Get the template of the current post
  $template_file = get_post_meta( $post_id, '_wp_page_template', true );

  // Remove page editor for specific template
  if ( 'page-your-template.php' === $template_file ) {
    remove_post_type_support( 'page', 'editor' );
  }
}

Remove support for excerpts

This example removes support for excerpts in posts:

function wpdocs_custom_init() {
  remove_post_type_support( 'post', 'excerpt' );
}
add_action( 'init', 'wpdocs_custom_init' );

Remove support for post formats

This example removes support for post formats in posts:

function wpdocs_remove_post_type_support() {
  remove_post_type_support( 'post', 'post-formats' );
}
add_action( 'init', 'wpdocs_remove_post_type_support', 10 );

Remove comments from all pages

A simple way to remove comments from all pages:

function wpdocs_disable_comments_on_pages() {
  remove_post_type_support( 'page', 'comments' );
}
add_action( 'init', 'wpdocs_disable_comments_on_pages' );