【问题标题】:Unable to Enqueue Scripts in Child Theme无法将子主题中的脚本排入队列
【发布时间】:2018-05-12 06:13:42
【问题描述】:

我正在尝试从子主题中的 javascript 文件中注册脚本并将其排入队列。该脚本似乎注册得很好,返回true,但是当脚本入队时没有任何反应。我注册或入队的方式有什么问题吗?

在 functions.php 中,我正在检查用户的角色,如果该用户具有“ad_greensboro”的角色,我会从 custom_functions.js 中注册和排队脚本。

function tutor_portal_scripts() {
    $user = wp_get_current_user();
    if (in_array( 'ad_greensboro', (array) $user->roles ) ) {
        debug_to_console("User is AD Greensboro");
        wp_register_script('set_rollup_links_greensboro', get_stylesheet_directory_uri() . '/js/custom_functions.js', array(jquery), '', true);
        wp_enqueue_script('set_rollup_links_greensboro');
    } 
}
add_action( 'wp_enqueue_scripts', 'tutor_portal_scripts' );

以下是我的自定义 JS 文件的全部内容。其目的是更改特定页面上三个链接的 href 属性。

function set_rollup_links_greensboro() {
	console.log("Set rollup links for Greensboro AD");
	
	var at_link = document.getElementById('at-view-link');
	var bas_link = document.getElementById('bas-view-link');
	var tutor_link = document.getElementById('tutors-view-link');

 	at_link.setAttribute('href', 'https://devts.techstartutors.com/appointment-tracker-form-view-greensboro-nc/');
 	bas_link.setAttribute('href', 'https://devts.techstartutors.com/book-a-service-form-view-greensboro-nc/');
 	tutor_link.setAttribute('href', 'https://devts.techstartutors.com/');
}

提前致谢。

【问题讨论】:

  • error_log( in_array( 'ad_greensboro', (array) $user->roles ) ); 返回什么? (确保您首先启用了debugging
  • array(jquery) 是一个错字,希望不在您的代码中。必须是 array("jquery")array('jquery')

标签: javascript php wordpress


【解决方案1】:

在您的 javascript 文件中,您应该调用该函数。因此,将以下代码添加到您的 javascript 文件的末尾:

set_rollup_links_greensboro();

【讨论】:

  • 每次都会执行 set_rollup_links_greensboro() 。我想让它在当前用户具有特定角色(“ad_greensboro”)的条件下运行。
  • @EvanScott - 不是根据您的enqueue 代码(PHP 代码)。当用户是正确的角色时,该脚本包含,对吗?所以 - 这个答案是正确的,
  • 抱歉!这是正确的。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 2017-03-20
  • 1970-01-01
相关资源
最近更新 更多