【问题标题】:Wordpress - Create Page with custom CSS and JS onlyWordpress - 仅使用自定义 CSS 和 JS 创建页面
【发布时间】:2019-10-13 21:07:00
【问题描述】:

我正在创建一个 Wordpress 插件,它添加了一个嵌入 React 应用程序的页面。

插件激活时,使用wp_insert_post()函数插入帖子,然后触发load_app_template()函数设置帖子模板。 此模板在 head 部分和我的 React 应用中包含 wp_head()

问题是其他一些插件在头部加载了一些干扰 React 应用程序行为的 JS 和 CSS。我正在尝试删除 Wordpress 和其他插件提供的所有 JS 和 CSS,并添加我自己的。

如果我从帖子模板中删除wp_head(),那么我无法通过wp_register_script 在我的插件中注册样式和脚本。

如何从 Wordpress 和插件中删除所有 JS 和 CSS,并从我的插件中添加我自己的?

可能有两种方法:

  1. 删除 wp_head() 并在 HTML 模板中手动添加指向我的 JS 和 CSS 的链接。我可以为 Jquery 和 Bootstrap 做到这一点,但我不知道如何从我的插件目录中放置 JS 文件的链接。

  2. 保留 wp_head(),注销所有 CSS 和 JS,然后使用 Wordpress 挂钩添加我自己的。我无法使用此解决方案从其他插件中删除一些 Javascript。我尝试注销所有关注this answer

谢谢!

【问题讨论】:

    标签: php wordpress reactjs


    【解决方案1】:

    尝试使用 wordpress 钩子删除不必要的脚本和样式 (这可能会帮助您弄清楚如何做到这一点:https://wordpress.stackexchange.com/questions/233140/how-can-i-get-a-list-of-all-enqueued-scripts-and-styles)如果您的模板在页面上使用。

    【讨论】:

      【解决方案2】:

      您可以从该页面中删除未使用的 CSS/JS。将此代码放在您的function.php中

      function remove_unused_css_js() {
      // remove only from that page
      if(get_the_ID() == 'Your Page ID'){
          wp_dequeue_style('css-id'); // remove css
          wp_dequeue_script('js-id'); // remove js
      }
      } 
      add_action( 'wp_print_styles', 'remove_unused_css_js', 100 );
      

      希望这会有所帮助。

      【讨论】:

      • 我不能按 id 出列,因为我不知道脚本和样式的 id。它不应该依赖于其他插件名称,以便可以在其他 Wordpress 网站上重复使用。
      • 只需使用 Ctrl + U 命令查看源代码并找到 css id。这将类似于“”。在这个例子中,你的 css id 是“example-css”。
      • 它应该适用于所有网站。其他一些网站可能有其他带有其他css id的插件,所以这个解决方案不够通用。
      猜你喜欢
      • 2019-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      • 2016-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多