AJAX навигация в Wordpress - проблема с постоянными ссылками - PullRequest
0 голосов
/ 01 февраля 2011

Итак, вот где я нахожусь:

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

Чтобы создать у пользователя впечатление, что он / она на самом деле использует «книгу», которую я использовалсложная структура на первом месте (касается в основном места маркеров страниц):

  1. Каждая категория использует свой собственный шаблон (category-4.php, category-5.php и т. д.)
  2. Файл single.php приводит к чувствительным к категориям шаблонам (всего 6 категорий)

Когда я закончил, я обнаружил, что графические элементы слишком сильно загружены, поскольку они перезагружались при каждом нажатии, истраница была невероятно медленной.Поэтому я подумал о решении AJAX и, наконец, использовал ezjax-решение (http://www.fluidbyte.net/index.php?view=simple-ajax-content-changer-with-ezjax), которое в основном представляет собой скрипт, который позволяет всем hrefs с определенным классом загружаться в пределах определенного div в index.php. Поскольку содержимое ссылокзагруженный в div Я сохраняю код (и, таким образом, трафик) для интерактивного фона в других файлах шаблонов и, таким образом, трафик.

Вы можете проверить текущую страницу здесь и посмотрите, как работает навигация.

По сути, это именно то, что я хотел, но это все еще вызывает некоторые проблемы:

  1. Как файлы шаблонов одиночных постов, категорийНапример, НЕ содержит фон, на котором вы не можете использовать постоянные ссылки. Вы действительно можете сделать это, но это будет выглядеть как половина страницы (http://www.palimpsest.eu/2011/02/01/differenzierung/). Очевидно, что посетители получат «нормальное» представление о контенте..

  2. По некоторым причинам некоторые плагины, которые должны быть связаны с идентификатором поста (например, Sexybookmarks или Flattr), неРабота.Я предполагаю, что причина связана с 1. проблемой.

Теперь вот мои подходы, и я хотел бы спросить вас, какой из них вы считаете лучшим, чтобы выбрать (или, возможно, дать некоторое вдохновениео других способах решения проблемы):

  1. Вызывает single.php, чтобы спросить, просматриваете ли вы inline или пришли с внешнего сайта, а затем приводите в два разных шаблона (короткий иодин со всем графическим содержанием).В этом случае я не знаю, как заставить single.php понять, откуда вы идете.

  2. Я думал об использовании AJAXed Wordpress, но я не уверен, что он подойдет для моих нужд.Я также не вижу много документации о навигационном модуле.

  3. Любой другой способ, который не обновит содержимое, которое уже находится во временных файлах Интернета.

Буду очень признателен за советы, как справиться с этой проблемой.

С уважением, Лара

1 Ответ

3 голосов
/ 01 февраля 2011

Добро пожаловать на SO. Я не уверен, что понимаю, что именно вы пытаетесь сделать, но вот обычная дилемма с AJAX-запросами контента только в WP: Вы хотите ссылку, при нажатии загрузить страницу как обычно. Но вы также хотите использовать ту же ссылку для загрузки той же страницы через AJAX, и тогда вы не хотите, чтобы макет также загружался.

Предполагая, что это является ядром вашей проблемы, вот как я обычно это решаю:

// functions.php
function is_ajax_request() {
  return (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) &&   
          strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
}


// e.g. in index.php or any other template file:
<?php if (!is_ajax_request()) { get_header(); }  ?>

// ... Rest of your template ...

<?php if (!is_ajax_request()) { get_footer(); } ?>

Таким образом, только контент загружается, если файл шаблона запрашивается через AJAX, в противном случае страница загружается как обычно.

Дайте мне знать, если это вам поможет, или иным образом объясните, что вам нужно. И я заметил, что люди здесь избегают слишком длинных вопросов. Так что - чем короче, тем лучше;)

...