How to disable posts and use pages only

I am new to WordPress theming and I would like to set up a Website that only has static content. Therefore would it make sense to disable posts and only use static pages? If so, is there an easy way to do that?

Related posts

Leave a Reply

5 comments

  1. You can simply hide the posts menu by adding the following to your functions.php file:

    function remove_posts_menu() {
        remove_menu_page('edit.php');
    }
    add_action('admin_menu', 'remove_posts_menu');
    

    WordPress does not permit the disabling of the actual post type with the unregister_post_type() function. The condition is here: https://github.com/WordPress/wordpress-develop/blob/6.0/src/wp-includes/post.php#L1754

    // Do not allow unregistering internal post types.
        if ( $post_type_object->_builtin ) {
            return new WP_Error( 'invalid_post_type', __( 'Unregistering a built-in post type is not allowed' ) );
        }
    
  2. I would recommend you to leave the post only for the admin user… literally the “admin”, and create another user to manage the page, so I case you need it in the future for scalability you can go back to it with your admin account.

    Just add the following code to your functions.php

     function remove_menus () {
     global $menu;
     $user = wp_get_current_user();
     if ($user->ID!=1) { // Is not administrator,
    
        $restricted = array(__(__('Posts'));
        end ($menu);
        while (prev($menu)){
            $value = explode(' ',$menu[key($menu)][0]);
            if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
         }
       }
     }
     add_action('admin_menu', 'remove_menus');
    
  3. Have you thought about just renaming “Posts” to something like “News” ? So that the user (yourself or a client) could still post news, press releases, articles, etc. to prevent stagnant content on the site.

    It’s quite simple to do. Just pop this in your functions file.

    function change_post_menu_label() {
        global $menu;
        global $submenu;
    
        $menu[5][0] = 'News';
        $submenu['edit.php'][5][0] = 'News';
        $submenu['edit.php'][10][0] = 'Add Article';
        $submenu['edit.php'][15][0] = 'News Categories'; // Change name for categories
        $submenu['edit.php'][16][0] = 'News Article Tags'; // Change name for tags
    }
    
    function change_post_object_label() {
        global $wp_post_types;
    
        $labels = &$wp_post_types['post']->labels;
        $labels->name = 'News';
        $labels->singular_name = 'News';
        $labels->add_new = 'Add Article';
        $labels->add_new_item = 'Add Article';
        $labels->edit_item = 'Edit Article';
        $labels->new_item = 'News Article';
        $labels->view_item = 'View Article';
        $labels->search_items = 'Search News';
        $labels->not_found = 'No Articles found';
        $labels->not_found_in_trash = 'No Articles found in Trash';
    }
    add_action( 'init', 'change_post_object_label' );
    add_action( 'admin_menu', 'change_post_menu_label' );
    

    And now you can have news that everyone can benefit from. Hope this helps!

  4. posts / page are essentially the same – they are only different by definition of usage (and other minute things) .
    more or less like “blog” and “website” . A page is actually a “kind” of post (as far as wp is concerned)

    There are a ton of ways you can “disable” one or another .
    you can disable them by taxonomies, by hiding the menus, by not using one or another in the theme files…

    but in order to know what is the best way , can you explain a bit more WHY you need to “disable” them ?

    I suggest that before you start to “disable” things, install WP and start to play with it a bit – you will then understand much better.

  5. Would it make sense to disable posts and only use static pages?

    No. Unless you only want a small amount of pages.

    I would use Posts as they are more flexible. You can disable specific features for posts which you don’t want to use like comments and RSS feed etc but you’ll find posts are better to use if you want to add content on a regular basis. Otherwise, yes, you can simply use static pages.

    You’ll find adding useful, relevant content on a regular basis will increase traffic to your site and increase your websites visibility on the internet.