Pods: Yoast SEO插件

创建于 2013-12-30  ·  18评论  ·  资料来源: pods-framework/pods

Integration Inactive Puntable Help Wanted Researched Bug

所有18条评论

在 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)。

此页面是否有帮助?
0 / 5 - 0 等级