Intereting Posts
Пользовательский шаблон страницы, не действующий как страница Пользовательский тип сообщения get_post_type_archive_link ($ post_type) возвращает false Интеграция темы WooCommerce с темой WordPress WordPress проверяет, равно ли значение равно и эхо "проверено" Могу ли я проверить nonce, который был сгенерирован на другом сайте WP? Отключить журнал отладки программно Я не могу ничего изменить в своей базе данных WordPress из WordPress? Определить максимальное количество изменений для типа публикации? Создание формы регистрации пользователя WordPress Перемещенный сайт, старые ссылки на страницах, все еще указывающие на старый хост Как создать контактную форму 7 в толстоблоке? Почему горизонтальное выравнивание CSS для div внутри контейнера div не отображается в моей теме WP? Перенос метаданных в WP Отладка с функциями functions.php Как? Перенаправление / категория / sci-fi / to / category / scifi /?

ajax jquery update custom field meta value front end

Вероятно, есть намного более простой способ сделать это. После долгих проб и ошибок, пытающихся получить сообщение из URL-адреса, я решил добавить идентификатор к постоянной ссылке. Однако я понятия не имею, как настраиваемая ценность должна обновляться без обновления страницы.

Jquery

$(document).ready(function(){ $("a").addClass("external"); $("a").attr( "target", "_blank" ); }); jQuery(document).ready(function($) { $('.external').click(function(event) { // had to add the post id to the permalink in loop as url to postid didn't work var currentID = $(this).attr('id'); var data = { action: 'my_action', whatever: currentID }; // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php jQuery.post(ajaxurl, data, function(response) { //update the custom field value without a page refresh }); }); }); 

functions.php

 add_action('wp_ajax_my_action', 'my_action_callback'); function my_action_callback() { global $wpdb; // this is how you get access to the database $whatever = intval( $_POST['whatever'] ); // get number of views if we have any $views = get_post_meta($whatever, views, true); // update or add post meta if(!update_post_meta($whatever, 'views', ($views+1))) { add_post_meta($whatever, 'views', 1, true); } die(); // this is required to return a proper result } 

content.php

 <a href="<?php the_permalink(); ?>" id="<?php the_ID(); ?>"><?php the_title(); ?></a> <?php echo get_post_meta($post->ID, 'views', true) ?> // update the view ? 

Solutions Collecting From Web of "ajax jquery update custom field meta value front end"

Во-первых, вам нужно вывести ответ в свою my_action_callback() . Этот ответ будет доступен в вашем обратном вызове jQuery: function(response){} . В этот момент речь идет только об обновлении HTML -страницы с новым количеством просмотров.

PHP:

 function my_action_callback() { // ... echo $views; exit; } 

JavaScript:

 jQuery.post(ajaxurl, data, function(response) { // $(this) refers to the clicked link. // You may use another selector too if needed. $(this).text(response); });