CRUD Operations In WordPress using PHP

Table of Contents

In PHP, WordPress provides a set of functions and APIs to perform CRUD (Create, Read, Update, Delete) operations on its database. These operations allow you to interact with WordPress database tables to manage posts, pages, custom post types, comments, and other elements of your WordPress site. Below, I’ll explain the basic CRUD operations in WordPress using PHP code snippets.

Please note that performing CRUD operations directly on the WordPress database is not always recommended, as it bypasses WordPress’s built-in functionalities and can lead to potential issues if not done correctly. Instead, you should often use WordPress core functions and classes to handle these operations, as they ensure data integrity and proper handling of actions and filters.

  1. Create (Insert) Operation: To create a new post or any other content type, use the wp_insert_post() function:
$new_post = array(
    'post_title'   => 'New Post Title',
    'post_content' => 'This is the content of the new post.',
    'post_status'  => 'publish', // 'publish', 'draft', 'pending', etc.
    'post_author'  => 1, // The ID of the post author.
    'post_type'    => 'post', // 'post', 'page', or custom post type name.

// Insert the post into the database
$post_id = wp_insert_post($new_post);

2. Read (Retrieve) Operation: To retrieve posts or any other content type, use the WP_Query class or relevant functions like get_posts() or get_pages():

// Example: Retrieve published posts.
$args = array(
    'post_type'      => 'post',
    'post_status'    => 'publish',
    'posts_per_page' => 10,

$query = new WP_Query($args);

// Loop through the query results
if ($query->have_posts()) {
    while ($query->have_posts()) {
        // Display post title and content or perform other operations.

3. Update Operation: To update an existing post or any other content type, use the wp_update_post() function:

// Update post with ID 123
$updated_post = array(
    'ID'           => 123,
    'post_title'   => 'Updated Post Title',
    'post_content' => 'This is the updated content of the post.',

// Update the post in the database
$post_id = wp_update_post($updated_post);

4. Delete Operation: To delete a post or any other content type, use the wp_delete_post() function:

// Delete post with ID 123
$post_id = 123;

// Delete the post from the database
$result = wp_delete_post($post_id, true); // Set the second parameter to true to force delete permanently.

Again, remember to use these CRUD operations judiciously and prefer WordPress’s built-in functions whenever possible to ensure compatibility and proper handling of data. Directly manipulating the database should be done with caution.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top