如何自定义WordPress文章预览链接?

最近给客户进行主题开发的时候,由于客户前台后台采用不同的域名,后台使用的是直接解析到当前网站的正常域名,前台采用的是解析到其他网站上的域名,然后加了一个后缀并进行了重定向,这就导致了一个问题,就是在后台预览文章的时候出现404错误,因为从后台点击预览文章,打开的是前端的域名加文章id及参数,比如文章如果是草稿状态的情况,那么使用前台地址是无法正常预览访问的,所以就需要修改后台预览文章链接为以后台域名为前缀的。

首先,我们使用过滤钩子preview_post_link来自定义预览链接,你可以把下面的代码放到您的functions.PHP文件

function xm_custom_preview_link() {

return get_option('siteurl') . "/?p=" . get_the_ID() . "?preview=true";

}

add_filter('preview_post_link','xm_custom_preview_link');

如果你使用的都是经典编辑器,那么就这一步就可以了,但是如果你使用的是古腾堡编辑器,那么光这一步还不行,他改变不了编辑页面的预览链接,只能改变后台列表中的预览链接,我们还需要把下面的代码也放到您的functions.PHP

function fix_preview_link_on_draft() {

$preview_link = get_option('siteurl') . "/?p=" . get_the_ID() . "?preview=true";

echo '<script type="text/javascript">

jQuery(document).ready(function () {

const checkPreviewInterval = setInterval(checkPreview,1000);

function checkPreview() {

const editorPreviewButton = jQuery(".edit-post-header-preview__button-external");

if (editorPreviewButton.length && editorPreviewButton.attr("href") !== "' . $preview_link . '" ) {

editorPreviewButton.attr("href","' . $preview_link . '");

editorPreviewButton.off();

editorPreviewButton.click(false);

editorPreviewButton.on("click",function(e) {

const intervalId = setInterval(function() {

// find out when the post is saved

clearInterval(intervalId);

const win = window.open("' . $preview_link . '","_blank");

if (win) {

win.focus();

}

},50);

});

}

}

});

</script>';

}

add_action( 'admin_footer-edit.PHP','fix_preview_link_on_draft' ); // Fired on the page with the posts table

add_action( 'admin_footer-post.PHP','fix_preview_link_on_draft' ); // Fired on post edit page

add_action( 'admin_footer-post-new.PHP','fix_preview_link_on_draft' ); // Fired on add new post page

以上就是自定义wordpress后台文章预览链接方法,希望对您有帮助

相关文章

我们有时候在定制WORDPRESS主题的时候,由于菜单样式的要求我...
很多朋友在做wordpree主题制作的时候会经常遇到一个问题,那...
wordpress后台的模块很多,但并不是每个都经常用到。介绍几段...
从WordPress4.2版本开始,如果我们在MYSQL5.1版本数据中导出...
很多网友会遇到这样一个问题,就是WordPress网站上传图片、附...
对于经常要在文章中出现代码的IT相关博客,安装一个代码高亮...