是否未加载WordPress核心jQuery版本文件?

时间:2019-12-23 作者:ag_1812

我试着把<textarea> 使用表情符号选择器(https://github.com/mervick/emojionearea) 在我的wordpress站点中(安装了buddypress,实际上我把它放在buddypress消息中)。基本代码非常简单。

Exemple: https://jsfiddle.net/fqo1za9u/

一瞥:

HTML head:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
<script type="text/javascript" src="https://rawgit.com/mervick/emojionearea/master/dist/emojionearea.js"></script>
<link rel="stylesheet" href="https://rawgit.com/mervick/emojionearea/master/dist/emojionearea.css">

HTML body:

<textarea class="emojitextarea"></textarea>
<script type="text/javascript">
  $(document).ready(function() {
    $(".emojitextarea").emojioneArea({
    pickerPosition: "bottom"
    });
  });
</script>
在我的function.php (我已经检查了文件夹路径,没问题):

function my_add_scripts_style_emoji()
{
    wp_register_script(\'my-script-emojionearea\', get_stylesheet_directory_uri() . \'/emoji/emojionearea.js\', array(\'jquery\'), \'1.0\', false);
    wp_enqueue_script(\'my-script-emojionearea\');

    wp_enqueue_style(\'my-styles-emojionearea\', get_stylesheet_directory_uri() . \'/emoji/emojionearea.css\', array(), \'1.0\');
}

add_action(\'wp_enqueue_scripts\', \'my_add_scripts_style_emoji\');
在我的文本区域文件中:

<textarea class="emojitextarea"></textarea>
<script type="text/javascript">
    jQuery(document).ready(function() {
        $(".emojitextarea").emojioneArea({
        pickerPosition: "bottom"
        });
    });
</script>
function my_add_scripts_style_emoji()
{
    wp_register_script(\'my-script-emojionearea\', get_stylesheet_directory_uri() . \'/emoji/emojionearea.js\', array(\'jquery\'), \'1.0\', false);
    wp_enqueue_script(\'my-script-emojionearea\');

    wp_enqueue_style(\'my-styles-emojionearea\', get_stylesheet_directory_uri() . \'/emoji/emojionearea.css\', array(), \'1.0\');
}

add_action(\'wp_enqueue_scripts\', \'my_add_scripts_style_emoji\');
function my_add_scripts_style_emoji()
{
    wp_register_script(\'my-script-jquery\', \'https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js\', array(\'jquery\'), \'1.0\', false);
    wp_enqueue_script(\'my-script-jquery\');

    wp_register_script(\'my-script-emojionearea\', get_stylesheet_directory_uri() . \'/emoji/emojionearea.js\', array(\'jquery\'), \'1.0\', false);
    wp_enqueue_script(\'my-script-emojionearea\');

    wp_enqueue_style(\'my-styles-emojionearea\', get_stylesheet_directory_uri() . \'/emoji/emojionearea.css\', array(), \'1.0\');
}

add_action(\'wp_enqueue_scripts\', \'my_add_scripts_style_emoji\');
所以,如果我能很好地理解,the problem is that a core jquery version file is not loaded correctly. But I thought, core jquery file is loaded by default in my WP header?

I also tried this (manuel enqueue core jquery file), with no succes:

function my_add_scripts_style_emoji()
{
    wp_enqueue_script(\'jquery\');

    wp_register_script(\'my-script-emojionearea\', get_stylesheet_directory_uri() . \'/emoji/emojionearea.js\', array(\'jquery\'), \'1.0\', false);
    wp_enqueue_script(\'my-script-emojionearea\');

    wp_enqueue_style(\'my-styles-emojionearea\', get_stylesheet_directory_uri() . \'/emoji/emojionearea.css\', array(), \'1.0\');
}

add_action(\'wp_enqueue_scripts\', \'my_add_scripts_style_emoji\');
如果我理解得很好,那么最好使用WP核心jquery版本,而不是使用自己的jquery版本。所以,为什么这在这里不起作用,而使它起作用的唯一方法是加载您自己版本的jquery?有什么想法吗?

1 个回复
最合适的回答,由SO网友:ag_1812 整理而成

好的,问题出在WP jquery noConflict中。基本上,如果你先更换$ 具有jQuery, 但在这种情况下需要更换第二个$ 也所以,答案是第二个改变$ 通过jQuery.

<textarea class="emojitextarea"></textarea>
<script type="text/javascript">
    jQuery(document).ready(function() {
        jQuery(".emojitextarea").emojioneArea({
        pickerPosition: "bottom"
        });
    });
</script>

相关推荐

JQuery/AJAX在使用rest API时是否发送cookie,或者我是否需要以某种方式添加它们?

我遇到了一个奇怪的情况user capabilities. 我在本地计算机上设置了一个rest端点,我是超级管理员。rest端点被调用,它所做的第一件事就是查看用户是否可以发表文章(因为这是调用的结果)。我使用了以下代码: if(!current_user_can(\'publish_posts\')){ return array(\'reply\'=>0,\'error\'=>\'Forbidden\',\'code\'=>\'403\');