2011-02-01 3 views
0

Так here's, где я нахожусь:AJAX навигация в Wordpress - Проблемы с Permalinks

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

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

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

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

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

В основном that's именно то, что я хотел, но она до сих пор вызывает некоторые проблемы:

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

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

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

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

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

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

Я был бы очень благодарен за помощь в решении этой проблемы.

С наилучшими пожеланиями, Lara

ответ

3

Добро пожаловать на 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, в противном случае страница загружается только как обычно.

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

+0

Hey Polarblau, Спасибо за ваш ответ. Поэтому, если я получу код правильно, я поместил бы два кода в свои шаблоны: один для случая 1 (AJAX: ) И один для случая 2 (обычный Link: )? – Lara

+0

И жаль, что это слишком долго ... но, к сожалению, я не могу решить эту проблему короче, поэтому я попытался это сделать, структурируя;) Вы не знаете, в чем проблема с плагинами, которые пытаются уловить идентификатор сообщения? – Lara

+0

Это будет отображать заголовок (который содержит все ваши CSS/JS и т. Д.), Только если вы запрашиваете страницу * не * с помощью AJAX, что обычно означает, что вы получите простой контент при использовании AJAX, который снова обычно прекрасен, поскольку у вас уже есть все остальное (навигация, стили, заголовок и т. д.) на странице. Поэтому вместо использования 'get_header()' в ваших шаблонах просто используйте 'if (! Is_ajax_request()) {get_header(); } '. Нет 'else' необходимо. – polarblau

Смежные вопросы