【问题标题】:Events manager - child theme not working活动管理器 - 子主题不起作用
【发布时间】:2015-11-05 22:38:38
【问题描述】:

我正在尝试通过我的子主题更改 plugins/events-manager/templates/forms/event/bookings.php。当我直接在插件中对文件进行更改时,它运行良好,但我知道要走的路是在子主题级别进行更改,所以这就是我所做的:

我将编辑后的 ​​bookings.php 添加到了 twentytwelve-child/plugins/events-manager/templates/forms/event/bookings.php 但由于某些原因,这些更改没有应用。

我也尝试将编辑后的 ​​bookings.php 添加到 twentytwelve-child/events-manager/templates/forms/event/bookings.php 但它也不起作用。

如果有人能帮我解决这个问题,我将不胜感激(下面的屏幕截图)。仅供参考 - 我不是开发人员,所以请尽量不要在回答中过于技术化。

非常感谢, 伊万

【问题讨论】:

    标签: wordpress wordpress-theming


    【解决方案1】:

    如果开发人员可以简单地从他们的主题中覆盖插件中的特定文件,那就太好了,但我很确定 WP 不会那样工作(至少不能覆盖插件。主题文件?是的。插件? 不)。

    如果插件开发人员很好,他们会给你一些覆盖功能,比如使用action hooksfilters,或者将它们的函数作为静态函数包含在一个类中。

    the events-manager plugin file 的外观来看,有三个这样的动作钩子可用:

    do_action('em_events_admin_bookings_header', $EM_Event);
    do_action('em_event_edit_ticket_td', $EM_Ticket);
    do_action('em_events_admin_bookings_footer', $EM_Event); 
    

    您要么需要挂钩这些操作以进行调整(强烈推荐),要么复制插件、重命名并手动编辑(这意味着每次升级时都需要复制这些编辑...糟糕!)

    在进一步研究事件管理器插件后编辑:

    虽然 WP 不提供此模板覆盖功能,但它看起来像插件一样。然而,在对文档进行一些挖掘之后,我注意到这个功能没有指定天气,它支持子主题。尝试将模板覆盖放置在二十二而不是二十二子中。如果这可行,那么也许您可以将该文件夹移回二十二个孩子并在二十十二个内创建一个symlink 到二十二个孩子的真实文件夹(有点欺骗插件)。这样做意味着每次更新 21 时都必须重新创建符号链接,但代价是您现在可以覆盖模板,并且在更新 21 时不会丢失您的更改(只是符号链接)。

    【讨论】:

    • 谢谢史蒂文。我很困惑,事件管理器文档指出:“现在可以简单地将特定文件插入到您的主题中,这将覆盖事件管理器的某些方面。”更多信息在这里:wp-events-plugin.com/documentation/using-template-files ...所以我做错了什么吗?我真的很困惑......
    【解决方案2】:

    问题是你的文件路径:

    plugins/events-manager/templates/forms/event/bookings.php

    应该是

    plugins/events-manager/forms/event/bookings.php

    如果您对 EM 有任何疑问,我们会在此处监控免费论坛(我偶然发现了这一点)-https://wordpress.org/support/plugin/events-manager

    还有@StevenLeimberg,感谢您的参与!我们确实支持子主题,只是目录结构错误。

    【讨论】:

    • 谢谢马库斯!我会试试这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 2018-01-15
    • 2017-09-11
    • 2022-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多