描述错误
第一次使用 Pod。 遇到这种情况(使用 master 复制): classes/PodsAPI::save_pod
在保存新添加的字段时遇到任何错误时,会在调用cache_flush_pods
之前退出。 虽然其他字段似乎仍保存到数据库中,但在刷新缓存之前,它们对最终用户不可见。
当前修订行号2356 :
if ( ! empty( $errors ) ) {
return pods_error( $errors, $this );
}
$this->cache_flush_pods( $pod );
(PS据我所知,似乎没有任何错误处理未能保存字段。)
再现
重现行为的步骤:
观察:保存后没有显示新添加的字段
+1 有同样的问题。 设置保留名称不会出错。
请参阅#4122 这应该应用于字段名称、分类法、帖子类型等。有人不应该能够键入保留名称字段列表中的任何字段名称、帖子类型或分类法。
我提交了一个错误报告 #5440,其中我在标记为“状态”的字段中遇到了同样的问题。 但是,“状态”不在 Wordpress 的保留条款列表中。 从上面提到的案例中,'name' 在该列表中,但 'foobar' 不在该列表中。 PHP 保留字列表也是如此。
Wordpress 列表: (https://codex.wordpress.org/Reserved_Terms)
PHP 列表https://www.php.net/manual/en/reserved.php
也许其他一些保留字列表也有干扰?
@raoulunger您是否尝试过有关保留关键字的最新 PR?
编辑: status
不是 WordPress 保留关键字,但它用于 Pod,因为它用作 Pod 对象字段之一。 (目前还在调查中)
嗨,我看到你把问题划掉了;-)。 感谢调查!
是的,经过调查发现status
是 Pod 中post_status
的别名(用于魔术标签等)。
默认键和别名的完整列表:
ID ==> id
post_title ==> title & name
post_content ==> content
post_excerpt ==> excerpt
post_author ==> author
post_date ==> created & date
post_date_gmt
post_status ==> status
comment_status
ping_status
post_password
post_name ==> slug & permalink
to_ping
pinged
post_modified ==> modified
post_modified_gmt
post_content_filtered
post_parent ==> parent
guid
menu_order
post_type ==> type
post_mime_type
comment_count
comments
@sc0ttkclark @jimtrue我认为这个问题可以关闭,同意吗?
好的,就“状态”而言,这澄清了问题 - 感谢您解决这个问题,并提供列表!
为了解决使用保留字的更广泛问题(本主题以及#4122),似乎有几个选项:
顺便说一句,我当然很容易提出所有这些建议,因为我在这里真的帮不上忙——我的编码技能太有限了,抱歉!
干杯!
ID 只是一个保留关键字,我认为我们无法更改它。
关于警告,目前已显示,但这是通过 AJAX(服务器端)完成的,而不是直接在输入时完成。 我认为这是我们将来会添加的内容,但不会作为维护版本添加。
文档总是一个好主意。 @jimtrue你能为此创建一个我可以使用的文档页面吗?
在记录之前无法关闭。 任何其他“别名”都不适用于作为字段创建? 即“标题”“父母”等?
到目前为止我能找到的就是这些(除了已经提到的 WP 核心关键字)
这仍然需要修补,因为我们必须解释为什么我们不允许添加这些字段。 现在,我们没有给他们任何信息。
这并不完全正确,AJAX 会返回一条错误消息,但仅在保存时才会返回。
当我复制问题时,我没有收到任何可见的错误。 如果没有对用户可见的错误,那就是一个问题。
你用最新的 PR 测试过吗? 第5441章
请记住,字段名称允许使用这些保留关键字。 仅不适用于 Pod(CPT/税),请参阅 #5428。
我也没有收到错误消息(因此混淆)。 不过,我还没有用最新的 PR 进行测试,因为我真的不知道该怎么做(再次抱歉 - 我是这里的新手)。
2019 年 8 月 19 日 17:50,Jory Hogeveen [email protected]写道:
你用最新的 PR 测试过吗? #5443 https://github.com/pods-framework/pods/pull/5443
请记住,字段名称允许使用这些保留关键字。 仅适用于 Pod(CPT/税),请参阅 #5428 https://github.com/pods-framework/pods/pull/5428 。—
你收到这个是因为你被提到了。
回复此电子邮件直接,查看它在GitHub上https://github.com/pods-framework/pods/issues/5420?email_source=notifications&email_token=AM2NSKDD43ZU2JY47LPKRV3QFK6LTA5CNFSM4ICZDB72YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4TNDNQ#issuecomment-522637750 ,或静音线程https://github.com/通知/取消订阅身份验证/AM2NSKESXEIVUY3PLHRRMW3QFK6LTANCNFSM4ICZDB7Q 。
@sc0ttkclark @jimtrue这可以关闭吗?
如果我们在发送 pods_error 之前移动缓存刷新,我们可以解决这个工单的主要焦点。
已修复 #5459
抱歉,反应迟了,但谢谢!
2019 年 9 月 5 日 14:27,Scott Kingsley Clark [email protected]写道:
关闭 #5420 https://github.com/pods-framework/pods/issues/5420通过 #5459 https://github.com/pods-framework/pods/pull/5459 。
—
你收到这个是因为你被提到了。
回复此电子邮件直接,查看它在GitHub上https://github.com/pods-framework/pods/issues/5420?email_source=notifications&email_token=AM2NSKBMJPPMDU5DSLKEPWTQID3JNA5CNFSM4ICZDB72YY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOTOL3AQY#event-2610409539 ,或静音线程https://github.com/通知/取消订阅身份验证/AM2NSKDMLL2WOT3F7ITJ47TQID3JNANCNFSM4ICZDB7Q 。