可能与AJAX有关的两个问题

时间:2021-01-25 作者:Gary Hu

伙计们。大约一个月前,我创建了一个新的WP网站。最近,我遇到了两个我怀疑与AJAX有关的问题,但我不确定。第一个问题是媒体库在网格模式下不显示任何项目,但在列表模式下一切正常。问题发生时我没有编辑任何内容,所以我不知道为什么。。。The Media Library doesn\'t anything in the grid mode.

第二个问题是关于ACF的Post对象字段。在我的一个自定义帖子类型中,我使用了Post对象,直到最近,一切都很好。我发现,当我给字段指定一个新值时,按下更新按钮,重新加载编辑页面,编辑页面上的字段没有显示新值,但前端页面显示了新值。换句话说,新值已成功保存在DB上,但由于未知原因,编辑页面无法显示该值,并且在重新加载编辑页面后变为空。奇怪的是,该字段的下拉菜单工作正常,显示了所有选项。Empty Field after reloading the edit page

由于这两个函数都使用AJAX,我想知道它们与AJAX有什么关系。有没有人有同样的问题?非常感谢。

我的WP版本是WordPress 5.5.3,ACF版本是5.9.1

1 个回复
SO网友:Gary Hu

这些问题与我之前编写的可排序列函数有关。请参见下面的函数。

function cpt_date_orderby( $query ) {
 $orderby = $query->get( \'orderby\' );
 if( \'date\' == $orderby ) {
    $query->set(\'meta_key\', \'date\');
    $query->set(\'orderby\', \'meta_value_num\');
 }
}
add_action( \'pre_get_posts\', \'cpt_date_orderby\' );
问题出现在第3行,其中“$orderby”等于“date”是条件。“date”似乎是一个保留值,不能用于排序条件,尽管“date”是我用ACF创建的自定义字段。解决方法很简单:不要使用“date”,而是使用其他的,例如“date1”。

希望这能帮助那些正在努力解决这个问题的人。

相关推荐