在管理中更改查看链接的目标

时间:2016-11-04 作者:Yazmin

我们正在开发两个站点。一个站点保存我们的内容,另一个站点实际显示它。

因此,当我们在WP admin中查看帖子时,视图链接指向它所在的实例,这对我们查看帖子没有帮助。例如

数据站点:http://site1.com

查看网站:http://site2.com

我需要将数据站点上的视图链接更改为:http://site2.com/12345

是否有一个钩子可以用来修改WP admin中视图链接中设置的内容?

1 个回复
SO网友:cowgill

我相信你所指的“查看”链接并不是url应该更改的唯一地方,所以我冒昧地在其他地方也更改了它们。

这只影响已发布的帖子和页面。

View link changes

这是相当多的代码,但这应该可以做到。

// 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="%s" rel="permalink" aria-label="%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 ) );
}

相关推荐

为什么当我浏览网站的wp-admin页面时,广告页面会打开?

当我尝试通过Wordpress编辑我的网站并在登录后打开任何Wordpress页面时,该页面显示一个广告页面,我无法编辑我的网站。当我试图编辑任何帖子或打开wordpress的仪表板时,广告不断出现,但在实际的网站上没有显示。如何删除它并编辑网站?非常感谢。