Благодаря этому запросу я создал плагин, который позволяет задавать запрос и затем извлекать некоторые сообщения из цикла.
Я хотел бы реализовать кнопку AJAX для загрузки большего количества сообщений.
Моя цель — получить предыдущий набор данных в классе в ajax. У него будет многоклассный экземпляр на той же странице.
Как правильно делать такие вещи?
Вот мой код:
class class_name {
protected $data;
public function __construct($name) {
$this->data = $this->get_data($name);
$this->show();
}
public function get_data($name) {
$info = get_page_by_title($name);
$id = $info->ID;
$meta_keys = get_post_custom_keys($id);
if (empty($meta_keys)) {
return;
}
foreach ($meta_keys as $meta_key) {
$meta_values = get_post_custom_values($meta_key, $id);
if (strrpos($meta_key, $this->plugin_slug) !== false) {
foreach ($meta_values as $meta_value) {
$meta_value = maybe_unserialize($meta_value);
$data[$name][$meta_key] = $meta_value;
}
}
}
return $data[$name];
}
public function show() {
$this->loop();
}
public function loop() {
$query_args = $data[$name];
query_posts($query_args);
while (have_posts()) : the_post();
$output = the_title();
echo $output;
endwhile;
wp_reset_query();
}
}
add_action('wp_ajax_load_more', array(class_name_ajax, 'load_more'));
add_action('wp_ajax_nopriv_load_more', array(class_name_ajax, 'load_more'));
class class_name_ajax extends class_name {
protected $data;
public function load_more() {
$nonce = $_POST['ajax_nonce'];
if ( !wp_verify_nonce( $nonce, 'ajax_nonce' ) ) {
die ();
} else {
// $this undefined
parent::loop(); // I woould like to loop with the data set for current name
}
die();
}
}
new class_name('name1');
new class_name('name2');
Запрос Ajax работает нормально, но я не могу получить предыдущий.
РЕДАКТИРОВАТЬ:
Может быть, это будет просто, если я установлю глобальную переменную в моем class_name, а затем получу его своим class_name_ajax в ajax? Но как я могу передать набор переменных в классе другому классу с помощью ajax (без javascript)?
Задача ещё не решена.
Других решений пока нет …