WordPress AJAX Контент - PullRequest
       5

WordPress AJAX Контент

0 голосов
/ 18 октября 2010

Как я могу загрузить динамический wp-контент на мою индексную страницу блога wordpress?

В идеале, у меня должна быть индексная страница, которая отправляет GET запросы с запросом ?tag= на другую страницу, которая отображаетсписок постов, которые я хочу видеть в своем блоге.Как я могу это реализовать?

Ответы [ 3 ]

0 голосов
/ 18 октября 2010

Для меня я бы сделал что-то вроде этого:

  1. make tag-the_tag_slug.php (если он у вас уже есть, это хорошо)

  2. В запросе на получение AJAX отправьте запрос на URL http://yourdomain.com/the_tag_slug (или URL вашего тега, в котором будут перечислены сообщения в теге)

  3. отправить запрос с еще одним $_GET параметром, таким как $_GET["using_ajax"] = true

  4. в tag-the_tag_slug.php, если $_GET["using_ajax"] имеет значение false или не определено, выполните обычный вывод html. В противном случае, запустите цикл и сгенерируйте желаемый вывод HTML.

  5. После вызова ajax в функции успеха просто вставьте возвращенный HTML-вывод в нужное место.

Причина для этого заключается в том, что в WP 3.0 у вас есть тег шаблона с именем get_template_part(), поэтому ваш вывод цикла ajaxified может быть извлечен как loop-ajax_tag.php. И теоретически вы можете добавить столько, сколько хотите (и выбрать тот, определив, например, $_GET["loop-template"])

Другая причина в том, что вам не нужно много создания или модификации DOM javascript (для возврата xml / json требуется интерпретировать эти данные в jaavscript, и вам нужно правильно скопировать и вставить множество кодов шаблонов в javascript)

0 голосов
/ 19 октября 2010

У меня есть более простое решение, использующее стандартные рекомендации AJAX WordPress.В вашем functions.php добавьте следующий код:

add_action('wp_ajax_posts_by_tag', 'ajax_posts_by_tag');
add_action('wp_ajax_nopriv_posts_by_tag', 'ajax_posts_by_tag');

function ajax_posts_by_tag() {
  $q = new WP_Query('tag=' . $_POST['tag'])
  echo '<ul>';
  while ($q->have_posts())
  {
    $q->the_post();
    echo '<li>' . $q->post->post_title . '</li>';
  }
  echo '</ul>';

  die();
}

Затем, внутри вашего javascript на домашней странице, используйте следующий метод для получения содержимого по тегу (при условии, что вы используете jQuery):

jQuery(document).ready(function($) {
  var data = {
    action: 'posts_by_tag',
    tag: 'my-tag'
  };

  jQuery.post(ajaxurl, data, function(response) {
    alert(response);
  });
});

Что-то в этом роде.Затем вы можете втиснуть ответ в любой блок на странице.Будет извлекаться для сообщений с тегом my-tag.

0 голосов
/ 18 октября 2010

Вы можете получить rss-версию фида тегов, используя следующий URL: http://[[domain_name]]/tag/[[tag_name]]/feed/

Замените [[domain_name]] именем своего домена, а [[tag_name]] - тегом, который вы ищете.

Вы можете затем проанализировать этот XML / RSS, используя javascript

hth

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...