Search code examples
phpwordpresspluginswordpress-gutenbergwordpress-shortcode

Gutenberg having conflict with my plugin short code and seems to be displaying on editor page


I have made my first plugin and it all works on the front end but I am having some weird backend conflict with the gutenberg. I have done two things, made my plugin automatically add the pages / overwrite them when they've checked off, and made the plugin shortcode.

Here is the problem on my gutenberg:

enter image description here As you can see there are random red diamonds on the page. When I use the inspector I can see it has code from my plugin I created...

Here is how I created my plugin

First inside my functions page I registered a new short code.

add_shortcode('parts_listing_portal', 'portal_parts_list');

function portal_parts_list(){

    include "shortcodes/parts_listing_shortcode.php";

    return ;
}

Then I made content for inside the shortcode using JS, PHP, and HTML.(this is a big file with includes and API calls)

enter image description here

After the page looked the way I would like, I created a new function to work on my option submit. This function creates the page with the shortcode inside.

    //Add parts
    if ( get_option( 'parts' ) === "checked") {
        $parts_list = array(
            'post_title'     => 'Parts',
            'post_type'      => 'page',
            'post_name'      => 'Parts',
            'comment_status' => 'closed',
            'ping_status'    => 'closed',
            'post_content'   => '[parts_listing_portal]',
            'post_status'    => 'publish',
            'post_author'    => get_user_by( 'id', 1 )->user_id,
            'menu_order'     => 0
        );
        
//        PARTS LIST
        if(get_page_by_title('Parts') == null) {
            wp_insert_post($parts_list);
        }else{
            $post_exists = get_page_by_title("Parts" );
            $update_post = array('ID' => $post_exists->ID);
            $post_update = wp_parse_args($parts_list, $update_post);
            wp_update_post($post_update);
        }

When my function adds to the page & you go to the gutenberg editor it shows the full page for a split second then goes away. I feel I missed a statement somewhere to only show on "page" but I have no idea where to look. I've spent a lot of time researching it but couldn't find it.

Thank you


Solution

  • Whenever adding a shortcode make sure to check iif in admin area. If in admin area return nothing

    function portal_parts_list(){
        if ( is_admin()){
            return;
        }else {
            include "shortcodes/parts_listing_shortcode.php";
            return ;
        }
    
    
    }
    add_shortcode('part_description_portal', 'portal_parts_list');