微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何自定义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后台文章预览链接方法,希望对您有帮助

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐