wordpress教程菜鸟教程使用ajax更新自定义帖子元

如果您直接加载文件,则所有 WordPress 功能都将不起作用。 这就是为什么您几乎应该始终使用 AJAX API 的原因。 AJAX API 解决了这个问题。 一切都在 WordPress 上下文中加载。

你会包装你的处理 PHP 是一个函数:

function my_ajax_cb_wpse_108143() { $cote = get_post_meta($_POST['id'], 'cote', true); if($_POST['cote'] == 'like') { $newCote = $cote++; update_post_meta($_POST['id'], 'cote', $newCote); } else { $newCote = $cote--; update_post_meta($_POST['id'], 'cote', $newCote); } } 

将其连接到 AJAX 系统中:

add_action('wp_ajax_my_update_pm', 'my_ajax_cb_wpse_108143'); add_action('wp_ajax_nopriv_my_update_pm', 'my_ajax_cb_wpse_108143'); 

提交您的请求至 http://site/wp-admin/admin-ajax.php 并通过 my_update_pm 作为 Javascript 发出请求时的参数。

var data = { action: 'my_update_pm', id: jQuery('section#single article input:last-of-type').attr('value'), cote: 'like' }; jQuery.post(ajax_url, data, function(response) { // whatever you need to do; maybe nothing }); 

你可以设置 ajax_url 与 Codex 中的类似:

add_action( 'admin_enqueue_scripts', 'my_enqueue' ); function my_enqueue($hook) { if( 'index.php' != $hook ) return; // Only applies to dashboard panel wp_enqueue_script( 'ajax-script', plugins_url( '/js/my_query.js', __FILE__ ), array('jquery')); // in javascript, object properties are accessed as ajax_object.ajax_url, ajax_object.we_value wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'we_value' => $email_nonce ) ); } 

原文链接:https://www.wordpresshy.com/315934

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享