最近给客户进行主题开发的时候,由于客户前台和后台采用不同的域名,后台使用的是直接解析到当前网站的正常域名,前台采用的是解析到其他网站上的域名,然后加了一个后缀并进行了重定向,这就导致了一个问题,就是在后台预览文章的时候出现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日记主要承接WordPress主题定制开发、PSD转WordPress、WordPress仿站以及以WordPress为管理后端的小程序、APP,我们一直秉持“做一个项目,交一个朋友”的理念,希望您是我们下一个朋友。如果您有WordPress主题开发需求,可随时联系QQ:919985494 微信:18539976310