24 篇标签“wordpress”の内容
2022年4月19日 -

admin-ajax返回500错误的原因已找到,因为存在更新term分类时联动更新对应page页面,更新page页面时同步term分类数据的需求。
问题:更新term或page时无限转圈,后台查到返回500错误且一直重复请求。
原因:保存post(page)文章时更新 term 分类时由于wp文章草稿回档问题引发了无限循环更新(循环请求更新返回500错误但数据已更新的原因应该是,第一次匹配到指定更新数据,但第二次该数据已删除但请仍在请求更新所以返回500无限循环请求)。
方案:在 save_post 钩子内执行 wp_update_term 更新相关分类时,因为wp默认存在 revision 回档文章数据,所以在执行分类更新时需使用 wp_is_post_revision 判断当前更新 post_id 是否为存档文章,是则使用 remove_action 移除掉相关 hook 后再执行 wp_update_term 更新,然后再 add_action 添加该 hook!,否则直接执行 wp_update_term 更新分类。

Ps.

问题主要是没细看文档,更新分类 wp_update_term 钩子中貌似没有详细描述该循环问题,但更新文章 wp_update_post 钩子中文档里写了关于 Infinite loop 的相关说明,见:wp_update_post()、wp_update_term() WP新增/删除分类时候无限转圈已修复,未知原因:functions.php 尾部多余的“php开头/结尾符”.. 顺带一提:sitemap无法生成是原因是因为 sitemap.php 内使用相对路径“.././././”调用了 wp-load.php(需要使用wp的 get_option 函数所以需要加载wp文件)但在某些情况下无法正常获取到,所以出错了。(问题是这个原因是再另一个wp程序上测试出来的,因为另一个wp程序给我发错误邮件了,不知道为什么这个主题没有发送错误邮件,显示的是5.2版本开始就支持了..) 目前已实现创建/编辑/删除分类时同步数据到对应页面,创建分类时会自动创建对应name/slug页面,删除分类时将直接删除页面(默认分类没有回收站,所以当分类被删除时,对应页面将绕过回收站直接删除)。注意新建页面时不会创建对应分类,删除页面时会自动查询该页面是否存在已绑定的分类并删除(一般来说不建议通过页面来删除分类,会返回一个删除错误,即使已经正常删除页面及分类,目前该问题仍在解决中)

2022年4月19日 -

2022年4月17日 -

目前做sitemap的时候这个问题又出现了,而且导致了不能require的问题,之前很多更新数据库的钩子都存在这个问题,数据成功更新了但状态一直转圈。看了下后台,不挂钩子成功返回的有两个admin-ajax请求,一个json、一个txt/html,成功返回时两个请求均为200;挂载钩子后请求json格式返回200,但txt/html返回了500,并且在不断重复尝试该请求。想了下有可能和之前写的部分ajax请求有关,但未证实。

Ps.

题外话,今天联通王卡又跑通用流量了,气得我去王卡公众号批判了一番,结果当然没卵用的反馈给后台人员。之前投诉这才几天?又出这问题,批判完直接给腾讯官方电话打过去结果大概意思就是,这个流量管控和腾讯没什么关系,得去找运营商也就是联通,然后为问他qq看点到底属不属于免流那边又说不出来,真是无语,投诉腾讯了个寂寞。。于是又电话给到联通,那边这次直接说我没有开通什么定向包(之前我有了解到这个东西,本身这个大王卡自带免流包,后面运营商又搞了个专属的包,不升级就没法免流,但我还是没什么影响就一直没去管)然后马上给我补了个,之前投诉那么多次都没这方案,我自然也没啥话说,不过我的通用流量又没了是事实,所以让那边申请500mb的通用包给我,毕竟还有半个月,一天一块也是十多块钱呢,那边也去申请了。到这里我觉得这个免流偷跑的事情应该也有个了结了吧,我实在不想继续投诉了..

2022年4月17日 -

2022年4月12日 -

这个问题的解决方案在《WP分类与页面slug冲突问题 – 博客更新(七十三)》中提到,当需要在category页面使用wp原生评论时,需要新建与分类相同slug的页面,同时关闭WPML链接重写插件(设置固定链接规则“.”)即可使用page页面提供的页面内容及评论选项应用到category上。这个操作其实是一个覆盖,观察链接可以发现url中移除了category选项后多了许多“.//”目录,相当于直接访问页面url和加上category目录的页面区分开来。

Ps.

题外话,前几天投诉给联通那边的解决方案给到了,那边核实了两次,第一次让我自己去测试流量偷跑程序,测试到之后第二次他们再进行核实处理。现在核实到之前是什么东西在升级,导致没能免流,现在给我把这之后产生的流量费用报销掉,但之后产生的费用需要我自行承担,这个方案只能说勉强,因为我通用流量已经跑没了,这之后每天都有至少一块钱的流量费用产生,所以我让那边再免费申请一个G,那边同意了,也通过了,处理结果还是不错。然后来吐槽下腾讯,投诉给联通的同时也投诉给到了腾讯大王卡,非常搞笑的是联通都解决问题了,腾讯连个电话回访都没有,从投诉到现在一个反馈也没有,这就是腾讯的态度。去tmd腾讯王卡

2022年4月12日 -

2022年4月12日 -

如题,因为数据绑定关系,目前已实现新增 category 分类时自动创建与其 slug 别名相同的 page 页面(用于 category 分类数据调用 wp 原生评论及页面描述数据),删除 category 分类时自动查询删除相同 slug 别名且 post 类型为 page 的页面。

Ps.

现已弃用 WPML 去除 category 目录插件(该类开启后即使存在对应 slug 页面也会被识别为 category 页面,导致无法调用评论及页面内容),利用 trailingslashit 函数进行 url 重写简化。(主题框架基本已经完善了,评论排行/资源下载/acg等页面多数据已对接完成)

2022年4月12日 -

2022年4月12日 -

通常通过 get_categories() 自定义分类导航,通过设置其 orderby 属性控制排序。不过只能通过一些已定义的参数进行排序比较局限,所以这时一般通过 meta_query 查询方式来自定义需求进行排序。定义排序值表单时,为了方便排序,每次添加分类时都自动设置该值为新增分类的 term_id 值,这样实现默认按添加时间排序,通过在分类编辑页面插入排序编辑表单(默认显示其分类id)进行修改。然后问题来了,之前配置的是需要访问该分类编辑页时判断是否设置排序再进行自动更新,导致每次新增分类后都需要访问一次该分类才能在前台通过meta_query查询排序输出分类导航,但显然这是很不方便的,所以看了下有创建分类的两个 hook:edited_category/creat_category,只需要将自动更新排序值函数挂载到这两个钩子上即可实现新增分类自动更新排序值为新增分类id。

Ps.

问题主要是没有在创建分类时更新表单值(目前仍存在新增分类时无响应但已添加的情况,及删除分类时出现错误的提示但已删除的问题)

2022年4月12日 -

2022年3月30日 -

此功能用于公司业务场景(业务表单使用的是 wordpress 的 contact form 7 联系表单插件用于收发邮件提醒),在自定义form时该插件doc的dom事件均不能正常使用,需要手动定义相关触发事件。上次使用的wp评论企业微信应用通知是基于wp评论hook的,此时需要将其挂载到wpcf7插件提交事件上,而自定义表单的wpcf7需要手动设置邮件发送设置。将企业微信及相关函数设置完成后,首先想到的是将链接挂载到自定义form的action触发微信通知,结果可行,但wpcf7邮件提醒失效了(后来想过一个button提交多个action,比较麻烦也不太可行),需求是邮件提醒和微信提醒同时存在,所以该方案不可行。然后想到了第二个方案,利用js来发送通知api链接请求(其实该方案一开始就测试过,但不知道什么原因导致了cors跨域不可访问,应该是没有使用get请求类型获取相关参数),结果测试成功,微信收到通知后随即发送邮件提醒。

Ps.

此功能基于wp评论微信提醒修改,利用方案二可以在任意位置请求该api通知(需要定义所需发送参数)

2022年3月30日 -