我正在尝试做一个类似于后端的标记框,但用于前端。当用户在输入字段中键入时,我使用AJAX获取标记建议。
我过去在Wordpress中使用过AJAX,在主题等方面没有问题,但现在我正在尝试构建一个插件,因为它要复杂得多,所以我尝试以Wordpress插件样板(wppb.io)为基础,采用面向对象的方式。
但我不能用样板来工作。AJAX调用可以工作,但成功了:当函数(数据)应该返回“testing”时,它总是返回0,这让我觉得我的函数永远不会被调用。我已经做了好几个小时了,我看不出错误
这是我的代码:
/public/js/my-plugin-public。js公司
$(\'#my_plugin_tags\').keyup(function() {
var user_input = $(this).val();
var user_input_last = $.trim(user_input.split(\',\').pop());
$.ajax({
url: my-plugin.ajax_url,
type: \'POST\',
data: {
\'user_input\': user_input_last
},
success:function(data) {
console.log(data);
},
error: function(errorThrown){
console.log(errorThrown);
}
});
});
/public/将我的插件分类为public。php
/**
* Register the JavaScript for the public-facing side of the site.
*
* @since 1.0.0
*/
public function enqueue_scripts() {
wp_enqueue_script( \'my-plugin-public\', plugin_dir_url( __FILE__) . \'js/my-plugin-public.js\', array( \'jquery\' , $this->plugin_name ), $this->version, false );
wp_localize_script( \'my-plugin-public\', \'my-plugin\' , array( \'ajax_url\' => admin_url( \'admin-ajax.php\' ) ) );
}
/public/class我的插件类public。php
/**
* Get tag suggestions from while user writes
*
* @since 1.0.0
*/
public function tags_autofill_function() {
echo(\'Testing\');
}
/包括/分类我的插件。php
/**
* Register all of the hooks related to the public-facing functionality
* of the plugin.
*
* @since 1.0.0
* @access private
*/
private function define_public_hooks() {
// Load CSS & Scripts
$plugin_public = new My_Plugin_Public( $this->get_plugin_name(), $this->get_version() );
$this->loader->add_action( \'wp_enqueue_scripts\', $plugin_public, \'enqueue_styles\' );
$this->loader->add_action( \'wp_enqueue_scripts\', $plugin_public, \'enqueue_scripts\' );
// Custom Class from My Plugin
$plugin_class_public = new My_Plugin_Class_Public();
$this->loader->add_action( \'wp_ajax_tags_autofill_function\', $plugin_class_public , \'tags_autofill_function\' );
$this->loader->add_action( \'wp_ajax_nopriv_tags_autofill_function\', $plugin_class_public , \'tags_autofill_function\' );
}