所有分类
  • 所有分类
  • 站长推荐
  • WP主题
  • WP插件
  • WP模板库
  • 前端模板
  • 延伸阅读

Masterstudy 自带编辑器课程编辑页面404解决办法

Masterstudy 自带编辑器课程编辑页面404解决办法插图-WordPress资源海

用户反馈了一个关于 Masterstudy LMS 使用自带编辑器编辑课程时页面404无法打开的问题。

测试排查后发现编“Edit with Course Builder”这个编辑按钮的链接地址是这样的“/用户账户edit-course/1072/”。很明显这个链接太奇怪了,怀疑是我翻译出了问题,但是检查后发现并没有问题。

在另一个站里面进行全新安装测试,发现这个站是可以正常打开课程编辑页面的,并且编辑按钮的链接地址也变正常了。“/用户账户/edit-course/1072/

于是我尝试在第一个站点中手动补上斜杠后进行测试,发现还是404。两个站用的主题版本、插件版本、翻译文件也是用的一样的,所以现在可以排除插件自身问题和翻译文件问题。

于是继续排查,找到“用户账户”这个页面,发现这个页面地址本身就没有尾部的斜杠,于是确定是固定链接格式的问题,果然修改以后问题得到解决。

Masterstudy 自带编辑器课程编辑页面404解决办法插图1-WordPress资源海
改为这种尾部有斜杠的格式就可以了

题外话:其实这个问题不怪客户,责任在开发者,应该在代码层面对这个固定链接的斜杠问题进行适配的。代码层面不优化的话就会导致无法使用.html这种格式的伪静态。自己改代码的话,后续插件每次更新后都要自己再手动改也是很麻烦的一件事。

方法二:代码层面解决该问题

如果你就是想使用/%post_id%.html这种固定链接格式的话,可以参考下面教程自己改一行代码即可解决,缺点是如果官方不修复的话,后续每次更新该插件你都要再自己手动改代码。

Masterstudy 自带编辑器课程编辑页面404解决办法插图2-WordPress资源海

文件路径:/wp-content/plugins/masterstudy-lms-learning-management-system/_core/lms/helpers.php

搜索查找下面原代码:

function ms_plugin_user_account_url( $sub_page = '' ) {
	$settings        = get_option( 'stm_lms_settings', array() );
	$account_page_id = apply_filters( 'wpml_object_id', $settings['user_url'] ?? null, 'post' );

	if ( empty( $account_page_id ) || ! did_action( 'init' ) ) {
		return home_url( '/' );
	}

	$user_account_url = get_the_permalink( $account_page_id );

	if ( ! empty( $sub_page ) ) {
		$user_account_url .= "$sub_page/";
	}

	return $user_account_url;
}

修改后的代码为:

function ms_plugin_user_account_url( $sub_page = '' ) {
	$settings        = get_option( 'stm_lms_settings', array() );
	$account_page_id = apply_filters( 'wpml_object_id', $settings['user_url'] ?? null, 'post' );

	if ( empty( $account_page_id ) || ! did_action( 'init' ) ) {
		return home_url( '/' );
	}

	$user_account_url = get_the_permalink( $account_page_id );
	$user_account_url = rtrim($user_account_url, '/') . '/';//新增代码

	if ( ! empty( $sub_page ) ) {
		$user_account_url .= "$sub_page/";
	}

	return $user_account_url;
}

在这段代码中,我使用了PHP的 rtrim 函数来确保 $edit_url 不会以多余的斜杠结尾,然后添加了一个斜杠。这样做可以确保无论原始 $user_account_url 是否已经有斜杠,最终的URL总是正确的。

声明:1、本站大部分资源均为网络采集所得,仅供用来学习研究,请于下载后的24h内自行删除,正式商用请购买正版。2、所有汉化类文件和个别标注了“原创”的产品均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。3、如若本站内容侵犯了原著者的合法权益,请携带相关版权文件联系我们进行下架或删除。4、虚拟下载类资源具有可复制性,一经下载后本站有权拒绝退款或更换其他商品!
分享海报

评论0

请先
显示验证码
没有账号?注册  忘记密码?

社交账号快速登录