如何从Wordpress管理员替换帖子和页面的所有外部/预览

问题描述 投票:0回答:1

我使用Wordpress作为无头CMS并且仅使用API​​来提供内容。因此,我想链接到在其他地方托管的Vue.js框架的实际站点。

我在这里几乎取代了所有的链接,除了WP管理栏中的“查看页面”。当我查看它是如何获取链接的源代码时,它使用preview_post_link(),我认为我已经替换了URL?

add_filter( 'preview_post_link', 'filter_preview_link'); 
add_filter( 'preview_page_link', 'filter_preview_link'); 
add_filter( 'get_sample_permalink', 'filter_preview_link'); 
add_filter( 'get_sample_permalink_html', 'filter_replace_base_url'); 

function filter_preview_link( $permalink ) { 
  $base_url = get_field('base_url', 'option');

  if(is_array($permalink)){
    $url_data = wp_parse_url($permalink[0]);
    $permalink[0] = str_replace($url_data['scheme'] . '://' . $url_data['host'], untrailingslashit($base_url), $permalink[0]);
    return $permalink; 
  } else {
    $url_data = wp_parse_url($permalink);
    $permalink = untrailingslashit($base_url) . $url_data['path'] . (isset($url_data['query']) ? '?' . $url_data['query'] : '');
    return $permalink; 
  }

}; 

function filter_replace_base_url($html){
  $base_url = get_field('base_url', 'option');
  $html = str_replace(untrailingslashit(site_url()), untrailingslashit($base_url), $html);
  return $html;
}

任何帮助是极大的赞赏。

php wordpress
1个回答
0
投票

终于找到了丢失的代码......

add_action( 'admin_bar_menu', 'customize_wp_admin_bar_preview_links', 9999 );

function customize_wp_admin_bar_preview_links( $wp_admin_bar ){
  $base_url = get_field('base_url', 'option');
  $view_site = $wp_admin_bar->get_node('view-site');
  $view_site->href = $base_url;

  $view = $wp_admin_bar->get_node('view');
  $url_data = wp_parse_url($view->href);
  $view->href = untrailingslashit($base_url) . $url_data['path'] . (isset($url_data['query']) ? '?' . $url_data['query'] : '');

  $wp_admin_bar->add_node($view_site);
  $wp_admin_bar->add_node($view);
}
© www.soinside.com 2019 - 2024. All rights reserved.