【问题标题】:Is there a way to put all modals in one file and trigger them throughout the website?有没有办法将所有模式放在一个文件中并在整个网站上触发它们?
【发布时间】:2019-01-04 12:23:30
【问题描述】:

我正在开发一个具有三种不同模式的 WordPress 主题,这些模式将根据用户交互在整个网站中触发。这些模式都必须能够从网站上的每个页面触发,任何时间如果条件得到满足。

如果我在每个页面模板上再次实现相同的模态 overover,一切都会很好,但这远非可行的解决方案。

我已经阅读了 Bootstrap 文档提供的数据目标和其他可能性,但我没有感觉到。必须有一种简单的方法来实现这一点。我只想将我所有的模式放入一个名为 my-modals.php 的文件中,然后在整个站点中任何时候简单地触发它们中的任何

我一直在考虑为它创建一个函数,或者可能使用 <?php include(); ?><?php get_template_part(); ?> 作为文件,但我就是无法“动摇那种感觉”这个网站上的天才对此有正确的答案。

我不是在问如何创建简单的触发函数或类似的东西。每当我将 整个 模态标记放在触发它的页面上时,一切正常。

我的问题是,当我需要 ONE 源时,如何触发我需要的模态?

【问题讨论】:

  • 您需要做的就是在每个页面上放置所需的 HTML 和 JS。 wp_footer 可能是它的最佳选择。如果您想动态加载标记,您可能需要使用front-end ajax
  • 认为明白你在说什么@AndreiGheorghiu。但是没有其他方法可以做到这一点吗?以某种方式包含文件,就像它是一个库一样,并在我需要时在整个站点中触发它?在整个网站上放置我的触发器不是问题。这只是两行 Javascript,问题是如果他们无法以某种方式访问​​源代码,他们基本上没有什么可以触发的。

标签: php jquery html wordpress bootstrap-modal


【解决方案1】:

是的,您可以通过创建具有不同 id 的模式来做到这一点,这些模式将在单击相应的按钮或链接时被调用,而不是自动弹出。我建议你把所有的模态写在一个文件中,但如果可能的话,把它放入条件中,如下所示:

 <?php 

 if(is_home())
 {
 ?>
  <!-- Your Modal for Home Page only -->
 <?php 

 }
 if(is_category())
 {
 ?>
  <!-- Your Modal for Category Pages -->
 <?php

 }

【讨论】:

  • 我已经准备好 when 触发它们的所有条件。问题是,如何仅从一个文件触发所有模式,而不会使站点膨胀重复标记。
  • 您需要在单击按钮或链接时编写相应的 Javascript 代码。喜欢: $('.x-button').on('click',function(){ $('#xModal').modal() }); $('.y-button').on('click',function(){ $('#yModal').modal() });
猜你喜欢
  • 2021-03-06
  • 1970-01-01
  • 2019-12-16
  • 2021-04-04
  • 2020-07-07
  • 1970-01-01
  • 1970-01-01
  • 2011-11-06
  • 1970-01-01
相关资源
最近更新 更多