我需要在我的WordPress网站中添加这个Javascript行的属性。
<script type="text/javascript" src="https://www.domainname.com/wp-content/plugins/instagram-feed/js/sb-instagram.min.js?ver=1.8.3"></script>
是否可以创建一个函数,找到这个确切的代码行,并用另一个代码替换它只有一个额外的属性?
修改
好的,所以在加载之后无法更改此行。担心这是问题所在。
我现在尝试另一个解决方案,我想我差不多了,但不知怎的,我无法弄清楚如何加载脚本。
我正在谈论的脚本已在插件文件中注册(我不想编辑)。
wp_register_script( 'sb_instagram_scripts', plugins_url( '/js/sb-instagram.min.js' , __FILE__ ), array('jquery'), SBIVER, true ); //http://www.minifier.org/
现在我找到了一种方法来使这个脚本出列,因此它不会被加载。我在我的function.php
中这样做的functions.php
function deque_instagram_javascript(){
wp_dequeue_script('sb_instagram_scripts');
}
add_action( 'wp_enqueue_scripts', 'deque_instagram_javascript', 100 );
现在尚未设置Instagram Cookie。我正在使用Cookiebot并希望为用户提供设置此InstaGram cookie的选项。因此,使用此代码,您可以创建一个if语句,以便在您接受营销Cookie时执行某些操作。这是在de footer.php
我还创建了一个新变量来重新注册脚本。
Footer.php
<?php
$instagram_script_register = wp_register_script( 'sb_instagram_scripts', plugins_url( '/js/sb-instagram.min.js' , __FILE__ ), array('jquery'), SBIVER, true ); //http://www.minifier.org/
$instagram_script_enq = wp_enqueue_script( 'sb_instagram_scripts'); //http://www.minifier.org/
?>
<script type="text/javascript">
function CookiebotCallback_OnAccept() {
if (Cookiebot.consent.marketing)
{
enableInstaMarketing();
}
}
function enableInstaMarketing() {
var instagram_script_register = "<?php echo $instagram_script_register ?>";
var instagram_script_enq = "<?php echo $instagram_script_enq ?>";
}
</script>
Dequeue正在运行,但在接受营销Cookie时,我无法再次加载(入队)。
我正在尝试不可能或我做错了什么?
答案 0 :(得分:0)
如果通过``添加此脚本,并且您知道它的句柄,则可以执行此类操作
add_filter('script_loader_tag', 'additional_script_attributes', 15, 3);
function additional_script_attributes($tag, $handle, $src)
{
if ($handle !== 'your_script_handle')
{
return $tag;
}
return str_replace('\'></script>', '\' async></script>', $tag);
}
您可以将async
替换为您需要的任何内容。基本上,$tag
有html代码来添加这个特定的脚本。您可以根据需要进行编辑,str_replace
只是一种简单的方法。