【发布时间】:2021-01-06 20:42:13
【问题描述】:
尽管尝试了我能想到的一切,但我似乎无法调用正确的 JS 文件位置。下面是从我所知道的一切中找到“myjsfile.js”(stackoverflow 的名称替换)的方式
function my_scripts() {
wp_enqueue_script( 'myscript', get_theme_file_uri( '/assets/js/myjsfile.js' ), array('jquery'), null, true );
wp_localize_script('myscript', 'my_ajax', array('ajax_url' => admin_url('admin-ajax.php')));
}
add_action('wp_enqueue_scripts', 'my_scripts');
我试图调用的文件位于:
https://mywebsite.com/wp-content/themes/"mytheme"/assets/js
以上PHP脚本位于:
https://mywebsite.com/wp-content/themes/"mytheme"
我试过了:
'/assets/js/myjsfile.js'
'../assets/js/myjsfile.js'
'../../assets/js/myjsfile.js'
'"mytheme"/assets/js/myjsfile.js'
'themes/"mytheme"/assets/js/myjsfile.js'
'../themes/"mytheme"/assets/js/myjsfile.js'
'../../themes/"mytheme"/assets/js/myjsfile.js'
'wp-content/themes/"mytheme"/assets/js/myjsfile.js'
'/wp-content/themes/"mytheme"/assets/js/myjsfile.js'
'../wp-content/themes/"mytheme"/assets/js/myjsfile.js'
https://mywebsite.com/wp-content/themes/"mytheme"/assets/js/myjsfile.js
一切都没有运气。默认'/assets/js/myjsfile.js'不调用JS文件,而是调用/wp-admin/admin-ajax.php。上面的其他示例都调用了https://mywebsite.com/wp-content/themes/"mytheme"/themes/"mytheme"/assets/js 的某个版本,只需将我放在/assets/js/myjsfile.js 前面的任何内容添加到正确的目录结构中即可。它加倍。谁能指出我在这里似乎出错的地方?
编辑 1 我也试过:
function my_scripts() {
wp_enqueue_script( 'myscript', ( get_theme_file_uri() ).'/assets/js/myjsfile.js', array('jquery'), null, true );
wp_localize_script('myscript', 'my_ajax', array('ajax_url' => admin_url('admin-ajax.php')));
}
echo getcwd(); shows me in the public directory /home/domains/mywebsite.com/public_html
编辑 2
在此处添加 Ajax 代码以及 PHP 目录 ECHO 尝试及其结果
AJAX
文件名为 - "myjsfile.js"
// JavaScript Document
jQuery.ajax({
type: 'post',
url: my_ajax.ajax_url,
action: 'waitlist_update',
success: function(data){
// callback function
}
});
PHP 回显目录尝试:
$path = $_SERVER['DOCUMENT_ROOT']; echo $path; 节目 - /home/food/domains/mysite.com/private_html
but echo getcwd(); 显示 /home/food/domains/mysite.com/public_html
编辑 3 更新 AJAX 并添加完整代码:
jQuery.ajax({
type: 'post',
url: ajax_url,
// add your action inside data object
data: {
action: 'waitlist_update'
},
success: function(data){
// callback function
}
});
PHP 代码
function my_scripts() {
wp_enqueue_script( 'waitlist_update_call', get_template_directory_uri().'/assets/js/waitlist_update_call.js', array('jquery'), null, true );
wp_localize_script('waitlist_update_call', 'my_ajax', array('ajax_url' => admin_url('admin-ajax.php')));
//calls Waitinglist data and creates table
}
add_action('wp_enqueue_scripts', 'my_scripts');
add_action('wp_ajax_waitlist_update', 'waitlist_update'); // logged in user can make a call
function waitlist_update() {
global $wpdb;
$results = $wpdb->query( $wpdb->prepare("UPDATE 'my_table' SET `currentstatus` =
'myupdate1' WHERE wdt_ID = '1'"));
die($results);
}
HTML 去吧!
【问题讨论】:
标签: php html directory subdirectory