Remove Post Page “View Post” Link

I have created a custom post type, but it just to list some data on a page and it doesn’t have any single.php.

How do i disable so on the post page when i click publish it doesn’t show the “View Page” link and also how do i disable the “View” link in the columns for that post type.

Read More

Thanks

Related posts

Leave a Reply

2 comments

  1. Changing the public argument of register_post_type() will remove the link to view your custom post type publicly.

    'public' => false, 
    

    See: WordPress Codex

    Note that this will also hide your custom post type from the admin navigation menus, which you might not want. To hide the ‘View Post’ link but keep your post type in the admin menus use show_ui as well like so:

    'public'  => false,
    'show_ui' => true,
    
  2. The previous answer is incorrect. The message at the top of a post edit page cannot be modified using labels. You need to use the post_updated_messages filter.

    The following function will customize the messages using the name of the post type – handy if you’re using custom post types. It’s a modified version of the example on the WordPress Codex.

    Notice that the View and Preview links are controlled with the $viewLink, $previewLink, and $schedPreviewLink variables, which will only appear if the visibility of the current post’s post type is set to public.

    function custom_post_type_messages($messages) {
      global $post, $post_ID;
    
      $post_type = get_post_type( $post_ID );
      $obj = get_post_type_object($post_type);
    
      $singular = $obj->labels->singular_name;
    
      $viewLink = ($obj->public) ?  ' <a href="%s">View '.strtolower($singular).'</a>' : "";
      $previewLink = ($obj->public) ? ' <a target="_blank" href="%s">Preview '.strtolower($singular).'</a>': "";
      $schedPreviewLink = ($obj->public) ? ' <a target="_blank" href="%2$s">Preview '.strtolower($singular).'</a>': "";
    
      $messages[$post_type] = array(
        0 => '', // Unused. Messages start at index 1.
        1 => sprintf( __($singular.' updated.'.$viewLink), esc_url( get_permalink($post_ID) ) ),
        2 => __('Custom field updated.'),
        3 => __('Custom field deleted.'),
        4 => __($singular.' updated.'),
        5 => isset($_GET['revision']) ? sprintf( __($singular.' restored to revision from %s'), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
        6 => sprintf( __($singular.' published.'.$viewLink), esc_url( get_permalink($post_ID) ) ),
        7 => __('Page saved.'),
        8 => sprintf( __($singular.' submitted.'.$previewLink), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
        9 => sprintf( __($singular.' scheduled for: <strong>%1$s</strong>.'.$schedPreviewLink), date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ),
        10 => sprintf( __($singular.' draft updated.'.$previewLink), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
      );
      return $messages;
    }
    
    add_filter('post_updated_messages', 'custom_post_type_messages' );