Home » Functions » init

The init function in WordPress is a crucial function that is used to initialize and setup various aspects of the WordPress environment. It is triggered early in the WordPress load process, right after WordPress core files have been included and the WordPress database connection has been established.

The init function is commonly used by developers to perform important setup tasks, such as registering custom post types, taxonomies, and custom fields, as well as enqueueing scripts and styles, setting up theme supports, and initializing plugins. Essentially, it is the starting point for any custom functionality or modifications you want to introduce to your WordPress website.

By hooking into the init action, developers can ensure that their code is executed at the appropriate time during the WordPress initialization process. This allows them to interact with the WordPress environment and modify its behavior as needed.

Here’s an example usage of the init function to register a custom post type called "Books":

function custom_book_post_type() {
    $labels = array(
        'name'               => __('Books', 'text-domain'),
        'singular_name'      => __('Book', 'text-domain'),
        'menu_name'          => __('Books', 'text-domain'),
        'add_new'            => __('Add New', 'text-domain'),
        'add_new_item'       => __('Add New Book', 'text-domain'),
        'edit_item'          => __('Edit Book', 'text-domain'),
        'new_item'           => __('New Book', 'text-domain'),
        'view_item'          => __('View Book', 'text-domain'),
        'search_items'       => __('Search Books', 'text-domain'),
        'not_found'          => __('No books found', 'text-domain'),
        'not_found_in_trash' => __('No books found in trash', 'text-domain')

    $args = array(
        'labels'              => $labels,
        'public'              => true,
        'rewrite'             => array('slug' => 'books'),
        'capability_type'     => 'post',
        'has_archive'         => true,
        'supports'            => array('title', 'editor', 'thumbnail', 'excerpt')

    register_post_type('book', $args);
add_action('init', 'custom_book_post_type');

In this example, the init function is used to register a custom post type called "Books" using the register_post_type function. This allows the creation of a new section in the WordPress admin dashboard where users can manage and publish books as a custom content type.

By utilizing the init function, developers can ensure that the custom post type is properly registered and available for use throughout the WordPress environment.

Note: It’s important to include the add_action('init', 'custom_book_post_type') line at the end of the code snippet to hook the custom_book_post_type function into the init action and trigger the registration process.

Overall, the init function is an essential tool for WordPress developers as it allows them to customize and extend the functionality of WordPress to suit their specific needs.

Learn More on

WordPress snippets using the init function

Register an account to save your snippets or go Pro to get more features.