SEO 标题和描述未保存
https://github.com/Yoast/wordpress-seo/issues/508
在 Yoast SEO 问题中,您可以阅读:
我想这证实了这是 Pods 插件的问题,而不是 WP SEO 的问题。
也许register_taxonomy()
时间不合适?
调试:WPSEO_Taxonomy 类的 update_term() 函数在 WP 的 do_action() 的 $wp_filter 中注册
但没有被调用
保存到 Pod 定义的自定义分类时
PodsMeta 的 save_taxonomy() 被调用了两次
调试:WPSEO_Taxonomy 类的 update_term() 函数在 WP 的 do_action() 的 $wp_filter 中注册
但没有被调用
你有没有确定他们在什么时候(时间方面)钩住了动作?
在“初始化”时间。
两者都在 WP 的 do_action() 中注册
但不知何故在 wp-includes/plugin 中。 php:429 PodsMeta 的 save_taxonomy() 被调用了两次
WPSEO_Taxonomy 类的 update_term() 被排除在外。
也许 pods_no_conflict_on() 导致它?
但不知何故在 wp-includes/plugin 中。 php:429 PodsMeta 的 save_taxonomy() 被调用了两次
我会看看我是否能找出导致这种特殊行为的原因,以及它是否相关。
非常感谢你! 我看你知道这两个插件。
我们这里有一个棘手的 WordPress 错误: http :
您可能已经发现,您可以注释掉对pods_no_conflict_on
的调用,问题就不再出现了。 我们将Pods::save
与无冲突调用包装在一起,以避免可能通过save()
发生的递归操作调用。 然而,由于 WordPress 的错误,当我们删除我们的动作钩子时,它也会带走任何其他低优先级的动作钩子。 您可以使用以下代码在子主题或插件中自己重新创建这种情况:
add_action( 'edit_term', 'test_17817', 15, 3 );
function test_17817( $term_id, $tt_id, $taxonomy ) {
remove_action( 'edit_term', 'test_17817', 15 );
}
我选择了 15 作为此测试的优先级,因为它介于 Pod 的优先级 10 和 Yoast 的 99 之间。在子主题functions.php 中使用该代码并且 Pod 没有冲突调用注释掉问题仍然存在。
在 Yoast 方面,您还可以通过将add_action
调用的 99 优先级更改为 10 或更少来解决问题。
同样在我的简化测试中,您可以添加自己的操作(回调函数本身可以只是一个空函数),优先级在 Pods 和 Yoast 之间,问题就会解决。
我们仍在讨论这个问题,因为它总体上对 WordPress 内容类型有更广泛的影响,我们深入参与了这个领域。
顺便说一句,在这一点上,这些信息都不是建议的修复方法。 这只是该错误及其表现方式的详细信息。
这对我来说是合适的修复:
add_action( 'edit_term', 'test_17817', 15, 3 );
function test_17817( $term_id, $tt_id, $taxonomy ) {
// http://core.trac.wordpress.org/ticket/17817
remove_action( 'edit_term', 'test_17817', 15 );
}
非常感谢你。
我不太了解WP和编码,我是一个调试器。
我会从函数体中取出remove_action
并将函数留空。 那里的remove_action
调用是为了说明如何在不由 Pod 引起的情况下制作错误清单。 把它放在那里可能会让你将来的事情复杂化。
我认为在这里记录我们在这里使用的过程实际上是 WordPress 核心推荐的也很好(尽管,在不同的操作上):
http://codex.wordpress.org/Plugin_API/Action_Reference/save_post#Avoiding_infinite_loops
打扰一下。
当自定义分类法没有额外的字段时,为什么要挂钩edit_term
?
我不确定这背后是否有功能性解释,或者只是“这就是它最初的编写方式”。 一个很好的问题,对于 3.0 优化考虑可能值得一个新问题:不挂钩我们可以确定我们当时不需要挂钩的东西。
这个问题还活跃吗?
Pods v3 (repeater field) 会发布吗?
@szepeviktor这似乎与这个话题无关。
无论如何,第一个版本将是 2.8(组字段 + Pods 管理员的完整重构)。
对于 2.9 可重复字段,请参阅:#1095
对于 3.0 循环字段,请参阅:#1095
回到主题,我试图重现这个问题,这似乎不再是一个活跃的问题(我会注意到,因为我也在几个项目中使用 Yoast SEO)。