十一年专注,只做WordPress定制开发一件事

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

王超
2023-08-24
后台定制
397 次

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

搜索

嘿,有问题找我来帮您!