是否可以从插件触发将 <script> 注入到多个 wordpress 帖子中?

Posted

技术标签:

【中文标题】是否可以从插件触发将 <script> 注入到多个 wordpress 帖子中?【英文标题】:Is it possible to trigger injection of <script> to multiple wordpress posts from a plugin? 【发布时间】:2021-10-28 04:33:54 【问题描述】:

我正在尝试使用我创建的插件将

这就是我试图实现的所有目标,但似乎没有任何效果。

    尝试使用来自@wordpress/hooks 的addAction('hook name', 'namespace', 'callback'),但这似乎不起作用。 (下面是 JS 文件中的代码)。

    myObj.addAction('wp_head', 'namespace', function() 
      <script>console.log("Hello World")</script>;
    );

    myObj.doAction('wp_head');
    php 进行了 AJAX 调用以触发add_action('wp_head', 'callback'),但是如果我们尝试从插件的入口文件手动执行此操作,则

//to create the wp_ajax_* hooks in my PHP script.

add_action('wp_ajax_request_function','ajax_request_function');

//AJAX call from react component.

jQuery(document).ready(function ($) 

      $.ajax(
        url: ajaxurl,
        data: 
          'action': 'ajax_request_function',
          'post_type': 'POST'
        ,
        success: function (data) 
          window.alert(data);
        ,
        error: function (errorThrown) 
          console.log(errorThrown);
        
      );

    );

function inject_script_to_head() 
    ?>
        <script>
            alert("adding this to header");
        </script>
    <?php


function ajax_request_function()

    
    if(isset($_POST))
    
        add_action('wp_head', 'inject_script_to_head');
    
        
    die();

【问题讨论】:

【参考方案1】:

这段代码永远不会运行:

function ajax_request_function()

    
    if(isset($_POST))
    
        add_action('wp_head', 'inject_script_to_head');
       
    die();

试试这个:

function inject_script_to_head() 
  if(is_single())
    ?>
        <script>
            alert("adding this to header");
        </script>
    <?php
    


add_action('wp_head', 'inject_script_to_head');

【讨论】:

以上是关于是否可以从插件触发将 <script> 注入到多个 wordpress 帖子中?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 插件可由控制台触发,但不能由函数触发 - 为啥会这样?

js confirm函数

是否可以将“text/javascript”假定为 <script> 元素的事实上的默认值?

从另一个插件触发插件 - 不同的主机程序

bootstrapvalidator插件怎么用

简洁的jQuery cxMenu 手风琴导航