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

有点无语,之前一直都是用文章分类在做站点导航,包括后续的功能函数都是围绕这个写的,现在发现页面导航貌似更方便些,很多写的功能在页面导航里都有.. 现在考虑要不要换成页面导航,还是说结合两者来做导航的问题

Ps.

蛋疼。。。

2022年4月22日 -

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日 -

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

Ps.

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

2022年4月12日 -