主题更改后,插件在前端消失

时间:2016-04-04 08:41:23

标签: php wordpress woocommerce

我正在为Woocommerce开发一个插件。我认为如果插件在不同主题中看起来很漂亮会很好。所以我下载了一个主题并安装并激活它。

所以我检查了产品页面上的插件。但它不存在!

我改回了其他一些主题,它又出现了!

所以我的问题是,开发一个不那么动态的插件是我的错吗? 或者这是主题创作者的错? 对于那些问题,可能的解释/解决方案是什么?

示例:

二十五岁:

Working

其他主题:

enter image description here

我看到的插件的元素并不存在。

修改

我正在使用woocommerce_after_main_content钩子。

我喜欢这个:

add_action( 'woocommerce_after_main_content', 'ws_action_woocommerce_after_main_content', 10);

这会调用运行短代码的函数。

像这样:

function ws_action_woocommerce_after_main_content() {

  do_shortcode('[ws_frame]');

}

这个简短的课程代码具有<h1>Hello, I'm here!</h1>

的功能

我的插件如何工作的摘要

我的插件是衬衫的设计师插件(也可以用于其他产品)。

该插件在后端有一个选项页面。

如果Woocommerce处于活动状态,我的插件只会被加载。此外,只有产品属于指定类别时,插件才会显示在产品页面上。

使用短代码,前端布局在函数中生成,其中存在一些排队的脚本和css。该函数还有一些HTML。

如上所述,我正在使用woocommerce_before_main_content挂钩。
这会调用一个函数,其中包含do_shortcode('[ws_frame]')
这个短代码作为排队脚本,css和has一些HTML。
然而,我在ob_flush();之前确实有do_shortcode('[ws_frame]')。所以这可能是什么?
此外,这个插件的前端没有更多的进展。这是使它出现在产品页面上的方法。管理面板中的选项页面仍然有效。

问题仍然存在,是我,谁需要解决这个问题,还是主题创作者负责的事情?
我怎么能自己解决这个问题?如何确保我正在使用的所有钩子仍然可用于该主题?
即使是主题创作者的错误,我也想知道如何自己解决这个问题。

1 个答案:

答案 0 :(得分:1)

我可能错了,但我想在你的情况下,你的插件没有显示的主题已删除特定的操作。 (你可以在相应的主题的函数文件中检查它。)好吧,最好挂钩你的插件(功能相关的一些动作钩子与功能相关或呈现一些功能(而不是与UI相关的动作)。

就像,用于将插件woocommerce_after_main_content与其他操作挂钩的操作一样,只输出一个html元素包装器。 (某些主题可能会删除并使用他们的自定义html包装。

在您的情况下,由于您的插件与单个产品页面相关/显示,我建议您使用相关操作来挂钩您的插件。例如woocommerce_after_single_product_summarywoocommerce_after_single_product,通常不会被兼容的woocommerce主题删除。

希望这有帮助。