WordPress通过preview_post_link过滤器更改预览发布链接按钮URL

时间:2020-01-09 10:43:01  来源:igfitidea点击:

使用wordpress用户/管理员面板发布时,如何更改默认的预览按钮?

在发布时,您需要使用wordpress下的名为Preview_post_link的挂钩或者过滤器来更改默认的预览按钮。根据wordpress过滤器文档:

  • preview_page_link应用于页面编辑屏幕上的链接,该链接在屏幕底部(或者右侧)显示页面预览。
  • preview_post_link应用于帖子编辑屏幕上的链接,该链接在屏幕底部(或者右侧)显示帖子预览。

您需要使用functions.php函数文件,该文件位于主题子目录中。
该文件的作用类似于插件,如果您使用的主题中包含该文件,则该文件会在WordPress初始化期间自动加载。
使用文本编辑器(如vim)编辑文件:

$ vi functions.php

追加以下代码:

// Change post preview button url 
// Change www.theitroad.local/faq/?p=124&preview=true
// To server1.theitroad.local/faq/?p=124&preview=true
function theitroad_preview_link() {
    $slug = basename(get_permalink());
    $mydomain = 'http://server1.theitroad.local';
    $mydir = '/faq/'; 
    $mynewpurl = "$mydomain$mydir$slug&preview=true";
    return "$mynewpurl";
}
add_filter( 'preview_post_link', 'theitroad_preview_link' );

保存并关闭文件。
另一个例子:

function theitroad_update_post_link($link) {
        //replace www part with server1 using the following php function
        //preg_replace ( patter, replace, subject ) syntax
        $link = preg_replace('/www/', 'server1', $link); 
        return $link;
}
add_filter('preview_post_link', 'theitroad_update_post_link');

当预览来自安全页面的帖子(来自secure-admin插件)时,可以使用相同的过滤器:

function sa_post_link($link) {
	global $pagenow;
	if ( ('on' == $_SERVER['HTTPS']) && ('wp-comments-post.php' != $pagenow) )
		$link = preg_replace('/^https?/', 'https', $link);
	return $link;
}
add_filter('preview_post_link', 'sa_post_link');
add_filter('preview_page_link', 'sa_post_link');