在Wordpress中使用wp_enqueue

时间:2016-03-06 06:38:29

标签: javascript jquery ajax wordpress

我转向这个令人敬畏的社区,在几天尝试修复这个错误后,我的问题非常简单,但它已经找到了我。我正在尝试将Java脚本排入我的主题我的登录插件,同时使用evolve主题。

这是执行该操作的代码片段,我使用全局函数来检查函数是否正在加载,并且没有加载。 '一个'不会变为真。

出于某种原因,它看起来像wp_enqueue_scripts不起作用。我试图添加wp_head()但没有运气。



  <?php
$GLOBALS['a'] = 'false';
add_action( 'wp_enqueue_scripts', 'load_location' );

function load_location() {
$GLOBALS['a'] = 'true';
	wp_register_script('load_location_test',get_template_directory_uri().'/load_location.js', array('jquery'),'1.1',true);
	wp_enqueue_script('load_location_test');
}

?>
<?php echo $GLOBALS['a'] ?>;
&#13;
&#13;
&#13;

感谢您的建议

链接为http://www.meetntrain.com/register

2 个答案:

答案 0 :(得分:0)

您应该查看文档或其他插件的文件,在线演练等,以了解更多信息。 wp_enqueue_scripts是你用来加载你的Javascript的一个钩子,你有一个基本的正确的想法,但在你的functions.php中尝试更多这样的东西:

function my_custom_scripts() {
    wp_register_script( 'custom-js', 'js/custom.js' );
    wp_enqueue_script( 'custom-js', 'js/custom.js', false );
}

add_action( 'wp_enqueue_scripts', 'my_custom_scripts' );

更改“js / custom.js”以获取目录中JS文件的位置。

另一种选择,如果证明这太难了,就是直接链接到footer.php底部的JS文件。与<script src="/path/to/my/file.js"></script>一样。

我确实发现排队脚本有时会有点奇怪,希望这有助于你弄明白。

答案 1 :(得分:0)

因此,为了让您的队列成功,您需要在functions.php文件或插件中添加代码。

add_action( 'wp_enqueue_scripts', 'load_location' );

function load_location() {
    wp_register_script('load_location_test',get_template_directory_uri().'/load_location.js', array('jquery'),'1.1',true);
    wp_enqueue_script('load_location_test');
}

这会将JS文件添加到您的所有页面。如果您想要定位特定页面,可以通过JavaScript或直接在PHP文件中进行。

如果您的主题使用body_class(),则可以按类定位该特定页面。然后你应该把你的JS包装成:

if( $('body.classUsed').length ){
// Your JS code here
}

请注意,该文件仍会一直排队。或者,如果您只想将JS文件添加到指定页面,可以将其包装在is_page()条件中:

add_action( 'wp_enqueue_scripts', 'load_location' );

function load_location() {
    if( is_page('your-page') ){
       wp_register_script('load_location_test',get_template_directory_uri().'/load_location.js', array('jquery'),'1.1',true);
       wp_enqueue_script('load_location_test');
    }
}