Новое в Wordpress здесь.
Я создал новую страницу "docs" и связал с ней новый шаблон под названием "docs. php".
Я также создал child- тема для этого шаблона и применил его к Wordpress. структура выглядит следующим образом:
- двадцать двадцать детей
- js
- документы. php
- функции. php
- стиль. css
документы. php:
<?php
/*
Template Name: docs
*/
?>
<script src="https://code.jquery.com/jquery-3.5.0.min.js"></script>
<script type="text/javascript" src="<?php echo get_stylesheet_directory_uri() . '/js/docs.js'; ?>"></script>
<button id="test">test</button>
И JS:
jQuery(document).ready(function($) {
console.log('jqueryOK');
jQuery("#test").click(function(e) {
jQuery.ajax({
type : "post",
dataType : "json",
url : the_ajax_script.ajaxurl, // <================ here lies the issue
data : {action: "getDocsFromCode", download_id : "testCode"},
success: function(response) {
console.log("response => ", response);
}
});
});
});
Когда я захожу на страницу и нажимаю кнопку, она говорит мне, что «the_ajax_script» не определен.
Хотя я зарегистрировал его в файле функций. php:
<?php
add_action( 'wp_enqueue_scripts', 'enqueue_scripts' );
function enqueue_scripts() {
// css
wp_enqueue_style('parent-style', get_template_directory_uri().'/style.css');
$handle = 'doc_script_handle';
wp_enqueue_script( $handle, get_stylesheet_directory_uri() . '/js/docs.js', array('jquery'));
wp_localize_script($handle, 'the_ajax_script', array('ajaxurl' =>admin_url('admin-ajax.php')));
}
//*********** getDOCS ***************//
add_action( 'wp_ajax_get_docs_from_id', 'getDocsFromCode' );
add_action( 'wp_ajax_nopriv_get_docs_from_id', 'getDocsFromCode' );
function getDocsFromCode() {
///un-needed code.......
}
?>
Исходя из angular фона, это не имеет смысла для меня. почему не работает? Также дополнительный вопрос: почему я должен импортировать jquery сам и указать его в части wp_enqueue_script?