Задать вопрос
sevasargsyan
@sevasargsyan
Веб разработчик

Как выводить записи вордпресс в модальном окне ?

Здравствуйте, уважаемые коллеги.
Есть такая проблемка. Подскажите пож, кто знает решение.
На странице записи (файл single.php) после основного цикла нужно вывести определенный список записей - дополнительная информация. Дополнительную информацию реализовал через пользовательский тип записей. Список сделать не проблема. Все нормально. Работает. Проблема в следующем. При клике на ссылку необходимо, чтобы запись выводилась не на новой странице, а в модальном окне. Блок модального окна поместил в футере. Но вот не получается коректно выводить записи в модальном окне. При клике на любую ссылку открывается последняя опубликованная запись.
буду благодарен за любую помощь
  • Вопрос задан
  • 4686 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
xakplant
@xakplant
Автор сайта xakplant.ru
Подробно расписал про это вот тут
Ответ написан
Комментировать
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Проверяйте значение глобальной переменной $post. Что конкретно вы отправляете в модальное окно? Отправлять туда просто ссылку (пермалинк) означает отправлять полноценный запрос, который выполнит инициализацию wp(), парсинг запроса, запросы в бд, загрузку шаблонов и т.д. Будут загружены целиком шапка и подвал темы, и т.д. Надо смотреть код, что именно вы там делаете. Без понимания среды и контекста помочь вам не представляется возможным.
Ответ написан
Комментировать
@sysaknikolay
Не знаю, актуален ли вопрос, но приведу свои соображения.

get_header и компанию можно убрать, поместить в модальное окно цикл из single.php, но ведь функции в модальном окне php'шные, а значит уже инициировали запрос и загрузили.. что? верно, последнюю добавленную запись (блог ведь).

Тут проблема в том, что пермалинк инициирует запрос к БД и перезагружает страницу, так как php выполняется на стороне сервера. Можно было бы воспользовать AJAX и перезагрузить только информацию в модальном окне, но тут возникает еще один вопрос, как вызвать модальное окно и при этом инициировать локальную перезагрузку, конкретной записи? и как функция узнает какую запись нужно запросить у БД? причем, без пермалинка, иначе он перезагрузит страницу

Модальное окно могло бы хорошо выводить цикл ленты записей, the_content'у можно приказать выводить весь текст, тогда загрузится некоторое количество записей, через AJAX указать добавление старых записей через load_more при некотором событии. Тут может помочь скрипт слайдеров, чтобы прятать другие записи из ленты и фокусировать на одной единственной, это создаст иллюзию перехода, но это будет не цикл одиночной записи, а цикл ленты.

Право же, можно сымитировать модальное окно якобы "без перезагрузки страницы", но перезагрузка ведь будет. После перезагрузки, запись будет выведена в "модальном окне", а сзади будет видно и меню, и прокрутка фона body, и удалять get'ы не нужно, только закрыть, выводимые ими блоки, z-index присвоить полупрозрачному блоку, затемняющему сайт, а ещё обязательно добавить к клику на затемняющий фон и кнопке закрыть переход обратно к странице с которой перешёл пользователь на single.php. То есть пользователь кликает на permalink тот его отправляет на сингл с полноценной перезагрузкой, но сингл оформлен так будто ты попал туда без перезагрузки, а при клике на закрыть он отправляет пользователя обратно. Бредовая идея, конечно, но вдруг. Вот пример: https://rocketbank.ru/ кликнуть "на попробовать сейчас"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы