Ajax и wp

12
psics
На сайте с 02.04.2009
Offline
130
1285

Нахожу кучу инфы о работе вп и ajax. Но не получается ничего...

Можете на элементарном примере. Чтобы я скопипастил и он работал...

То есть вывод к примеру текста "тест"...

в front end

---------- Добавлено 03.04.2015 в 17:09 ----------

functions.php


wp_localize_script( 'jquery', 'myajax',
array(
'url' => admin_url('admin-ajax.php'),
'nonce' => wp_create_nonce('myajax-nonce')
));


add_action("wp_ajax_my_action", "my_test");//при получении my_action сработает функция my_test админка
add_action("wp_ajax_nopriv_my_action", "my_test");//при получении my_action сработает функция my_test front end
function my_test(){
if ( !wp_verify_nonce( $_REQUEST['nonce'], "my_user_vote_nonce")) {
exit("No naughty business please"); //если не прошло проверку, отправляем
}
echo "test";

die();
}


JS


jQuery(".user_vote").click( function() {
var nonce = jQuery(this).attr("data-nonce");
jQuery.ajax({
type : "post",
url : '/wp-admin/admin-ajax.php',
data : {action: "my_action", nonce: nonce},
success: function(data) {
console.log(data);
}
})
});

получилось

Но вывело тест на новой странице... на белом листе...

psics
На сайте с 02.04.2009
Offline
130
#1

вот не поверю, что с ajax на wp никто не работает...

psics
На сайте с 02.04.2009
Offline
130
#2

забил на ajax. Решил сделать с перезагрузкой...

Но блин не работает сортировка по цене...


<?php

query_posts(array(
'post_type' => 'post',
'posts_per_page' => -1,
'meta_key' => 'price',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'cat' => 65
));
?>
<?php if ($_GET && !empty($_GET)) { // если было передано что-то из формы
//go_filter(); // запускаем функцию фильтрации
} ?>

Этот код, что выше - перед циклом...

/* FILTER */

function go_filter(){

$args = array(); // подготовим массив
$args['meta_query'] = array('relation' => 'AND');
global $wp_query;
if($_GET['price_min'] != '' || $_GET['price_max'] != '')
{
if ($_GET['price_min'] == '') $_GET['price_min'] = 0;
if ($_GET['price_max'] == '') $_GET['price_max'] = 9999999;
$args['meta_query'][] = array(
'key' => 'price',
'value' => array( (int)$_GET['price_min'], (int)$_GET['price_max'] ),
'type' => 'numeric',
'compare' => 'BETWEEN'
);
}
if (($_GET['tax_vehicle_type']) != '') {
$args['meta_query'][] = array(
'key' => 'class_auto',
'value' => $_GET['tax_vehicle_type'],
'compare' => '='
);
}
if (($_GET['tax_vehicle_status']) != '') {
$args['meta_query'][] = array(
'key' => 'kpp',
'value' => $_GET['tax_vehicle_status'],
'compare' => '='
);
}

if (($_GET['sort_type']) != '') {
$args['meta_query'][] = array(
'meta_key' => 'price',
'orderby' => 'meta_value_num',
'order' => $_GET['sort_type']
);
}


query_posts(array_merge($args, $wp_query->query));

}

Это функция, которая фильтрует. Но не работает сортировка по цене... где косячу?

PN
На сайте с 22.08.2012
Offline
103
#3


if(($_GET['price_min'] != '') || ($_GET['price_max'] != ''))

еще заметки по коду:


if ($_GET && !empty($_GET))
- это одно и то же выражение - соотв. одно можно убрать.

Лучше делать так:


if (isset($_GET['tax_vehicle_type']) && $_GET['tax_vehicle_type'])
Мой совет помог? Не скупись! Bitcoin 1Lseddet1o1B6odgXQHbGaWGwRkt1Db8Ef Ethereum 0x450f1a17461e25194B7F9226cDEe70173F39e1e1
psics
На сайте с 02.04.2009
Offline
130
#4
proksey-net:

if(($_GET['price_min'] != '') || ($_GET['price_max'] != ''))


еще заметки по коду:

if ($_GET && !empty($_GET))
- это одно и то же выражение - соотв. одно можно убрать.

Лучше делать так:

if (isset($_GET['tax_vehicle_type']) && $_GET['tax_vehicle_type'])

Спасибо, но хотелось бы больше по функционалу..

R
На сайте с 20.02.2015
Offline
59
#5

Так попробуйте.

 

//$args['meta_query'] = array('relation' => 'AND');
// надо
$args['meta_query'] = array();
$args['meta_query']['relation'] => 'AND';
// и далее как есть..
// $args['meta_query'][] = array(...
psics
На сайте с 02.04.2009
Offline
130
#6
rereg:
Так попробуйте.
 

//$args['meta_query'] = array('relation' => 'AND');
// надо
$args['meta_query'] = array();
$args['meta_query']['relation'] => 'AND';
// и далее как есть..
// $args['meta_query'][] = array(...

нет, так получается ошибка (белый экран)

R
На сайте с 20.02.2015
Offline
59
#7

Соррии.. синтаксис :)

$args['meta_query']['relation'] = 'AND';

не => а =

И сделайте так error_reporting(E_ALL);

psics
На сайте с 02.04.2009
Offline
130
#8
rereg:
Соррии.. синтаксис :)
$args['meta_query']['relation'] = 'AND';

не => а =
И сделайте так error_reporting(E_ALL);

так работает, но все время выводится по возростанию...

То есть как и до фильтрации...

R
На сайте с 20.02.2015
Offline
59
#9

order = ASC выводит по возрастанию а order = DESC по убыванию.

А сортировка по цене сейчас работает?

psics
На сайте с 02.04.2009
Offline
130
#10

работает только по возростанию. Но я думаю она работает отсюда


query_posts(array(
'post_type' => 'post',
'posts_per_page' => -1,
'meta_key' => 'price',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'cat' => 65
));

есть такая мысль, что это код надо заменить на wp_query... и


$args = array(
'post_type' => 'post',
'category__in' => 65,
'posts_per_page' => -1,
'meta_key' => 'price',
'orderby' => 'meta_value_num',
'order' => 'ASC',
);
$wp_query = new WP_Query($args);

а потом уже изменять сам вывод также как выше...

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий