Change target of view link in admin

The “View” link I believe you were referring to isn’t the only place the url should change so I took the liberty and changed them in the other spots as well.

This affects only published posts and pages.

View link changes

It’s quite a bit of code but this should do it.

// Change the "View" link on the all posts page.
function my_custom_view_link( $actions, $page_object ) {

  $title = _draft_or_post_title();

  $actions['view'] = sprintf(
    '<a href="https://wordpress.stackexchange.com/questions/245033/%s" rel="permalink" aria-label="https://wordpress.stackexchange.com/questions/245033/%s">%s</a>',
    my_custom_permalink( $post->ID ),
    esc_attr( sprintf( __( 'View &#8220;%s&#8221;', 'my-text-domain' ), $title ) ),
    __( 'View', 'my-text-domain' )
  );

  return $actions;
}
add_filter( 'post_row_actions', 'my_custom_view_link', 10, 2 );


// Change the "Post updated" link on the edit post page after saved.
function my_custom_post_updated_messages( $messages ) {
  global $post_ID;

  $view_page_link_html = sprintf( ' <a href="%1$s">%2$s</a>',
    esc_url( my_custom_permalink( $post_ID ) ),
    __( 'View post', 'my-text-domain' )
  );

  $messages['post'][1] = __( 'Post updated', 'my-text-domain' ) . $view_page_link_html;

  return $messages;
}
add_filter( 'post_updated_messages', 'my_custom_post_updated_messages', 10, 1 );


// Change the "Post updated" link on the edit post/page after saved.
function my_custom_post_preview_link( $return, $post_id, $new_title, $new_slug, $post ) {

  if ( 'publish' !== $post->post_status ) {
    return $return;
  }

  if ( false === strpos( $permalink, '%postname%' ) ) {

    $view_link      = my_custom_permalink( $post_id );
    $display_link   = urldecode( $view_link );
    $preview_target = " target="wp-preview-{$post->ID}"";

    $return = '<strong>' . __( 'Permalink:', 'my-text-domain' ) . "</strong>\n";
    $return .= '<a id="sample-permalink" href="' . esc_url( $view_link ) . '"' . $preview_target . '>' . esc_html( $display_link ) . "</a>\n";

  }

  return $return;
}
add_filter( 'get_sample_permalink_html', 'my_custom_post_preview_link', 10, 5 );


// Replace the base url with a custom one.
function my_custom_permalink( $post_id ) {
  return str_replace( home_url(), 'http://site2.com', get_permalink( $post_id ) );
}