Search code examples
phpwordpresscustom-post-type

Create custom post type whenever another custom post type is created


I'm trying to add a feature to my Wordpress website, that every time I add a post (custom post type), another post (different custom post type) is created.

I have tried adding an action in my function file but it does not seem to work.

functions.php

function add_notification($post_id) {
    global $wpdb;
    $post_type = get_post_type($post_id);
    if($post_type == 'exercises'){
        $title = "BLA";
        $post_id_new = wp_insert_post(
            array(
                'comment_status'    =>  'closed',
                'ping_status'       =>  'closed',
                'post_title'        =>  $title,
                'post_status'       =>  'publish',
                'post_type'     =>  'notification'
            )
        );
    }
}
add_action('publish_post', 'add_notification');

I have also tried it with other hooks like new_to_publish and publish_post

With that I was expecting to have a new post (notification) when I add an exercise post.

I think it's something silly I'm forgetting but it's been like 3 days that I'm stuck in this problem.


Solution

  • For custom post type we have to use hook like add_action('publish_custom-post-name','function'); In your case you have to use Like Below

    function add_notification($post_id) {
        global $wpdb;
        $post_type = get_post_type($post_id);
        if($post_type == 'exercises'){
            $title = "BLA";
            $post_id_new = wp_insert_post(
                array(
                    'comment_status'    =>  'closed',
                    'ping_status'       =>  'closed',
                    'post_title'        =>  $title,
                    'post_status'       =>  'publish',
                    'post_type'     =>  'notification'
                )
            );
        }
    }
    add_action('publish_exercises', 'add_notification');
    

    Please Try this. If any query feel free to ask.