WordPress как на ладони

Загрузка информации посредством ajax

На сайте будет много popup-окон, содержимое которых хотелось бы подгружать ajax-запросами при необходимости.

Так как с вордпресом знаком не больше недели - возник вопрос, где мне хранить данные и как их потом получить? Просмотрел несколько уроков про wp-ajax и придумал следующее:

1) Для каждого popup-окна будет отдельная страница, созданная в админке.

2) В ajax-запросе буду передавать id записи, php-скрипт будет искать подходящую страницу в базе и возвращать описание.

Хотелось бы получить ответы на следующие вопросы:

1) Хорошая ли идея так делать, или можете посоветовать что-то получше? Что-то слышал про REST API как аналог wp-ajax. Может будет правильнее использовать его?

2) Забить и использовать wp-плагин. Если да, то какие есть бесплатные, достойные внимания?

0
Alex
3.1 год назад
  • 1

    Если это не веб-приложение, то использовать большое количество модальных окон с погружаемым контентом - так себе идея smile

    Хорошая ли идея так делать

    хранить контент модулей в таблице записей - нормальная идея, только я бы добавил тип постов специально под модули и сделал его максимально непубличным, чтобы его не нашли поисковые роботы.

    Если же контент модального окна должен индексироваться, то можно обойтись без ajax. Просто собрать страницу из модулей и прятать/показывать их при помощи css.

    Комментировать
  • 0
    mi1384 solosofii.com

    Нормальная идея. Сам так сделал.

    add_action('init', 'glossary_type');
    function glossary_type(){
    	register_post_type('glossary', array(
    		'labels'             => array(
    			'name'               => 'Глоссарий',
    			'singular_name'      => 'Итем',
    			'add_new'            => 'Добавить итем',
    			'add_new_item'       => 'Добавить новый итем',
    			'edit_item'          => 'Редактировать итем',
    			'new_item'           => 'Новай итем',
    			'view_item'          => 'Посмотреть итем',
    			'search_items'       => 'Найти итем',
    			'not_found'          =>  'Итемов не найдено',
    			'not_found_in_trash' => 'В корзине итемов не найдено',
    			'parent_item_colon'  => '',
    			'menu_name'          => 'Глоссарий'
    
    		  ),
    		'public'             => false,
    		'show_ui'            => true
    	) );
    }
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация