Вопрос или проблема
Кто-нибудь знает, почему сноски к постам в WordPress находятся в таблице postmeta, а не в таблице, где находятся сами статьи (посты)?
Этот выбор означает, что копирование сносок (на стороне редактирования) не работает: блок, скопированный на другую страницу или в другую статью, показывает пустые сноски.
Технически, в чем была необходимость сделать этот выбор вместо того, чтобы поместить весь контент в таблицу постов?
С технической точки зрения, вы думаете, что можно было бы предусмотреть, чтобы “копирование” также включало сноски?
Ответ или решение
Вопрос о том, почему сноски в WordPress хранятся в таблице postmeta, а не в таблице, где находятся сами статьи (посты), имеет несколько аспектов, связанных с архитектурой и дизайном системы управления контентом (CMS) WordPress.
Архитектурные причины
-
Разделение данных: WordPress организует данные так, чтобы упрощать управление и расширяемость. Сноски, как правило, являются дополнительными метаданными, которые не являются основной частью содержания статьи. Хранение их в таблице postmeta позволяет избежать избыточности данных и облегчает структурирование контента. Это также позволяет легко добавлять новые метаданные без необходимости изменения основной структуры таблицы постов.
-
Гибкость: Хранение сносок в postmeta предоставляет больший уровень гибкости для разработчиков. Они могут добавлять и изменять метаданные, не затрагивая структуру самой записи. Это может быть удобно для плагинов и тем, которые хотят добавить свои собственные метаданные.
-
Оптимизация запросов: Разделение данных может также оптимизировать запросы к базе данных. Когда сноски хранятся отдельно, система может быстрее извлекать данные, которые требуются в данный момент, и избегать избыточной нагрузки на основную таблицу постов.
Почему сноски не копируются
Поскольку сноски хранятся в постмета, а не в основной таблице, при копировании и вставке поста с помощью встроенной функции WordPress, сноски не будут автоматически включены в новый пост. Система не знает, что необходимо скопировать соответствующие записи из таблицы postmeta вместе с основным контентом.
Возможные решения
-
Плагины: Есть плагины, которые могут добавить функциональность для копирования сносок при дублировании постов. Например, плагины для управления метаданными могут быть полезны для этой цели. Изучите доступные решения в каталоге плагинов WordPress, чтобы найти подходящие.
-
Кастомизация функций: Если у вас есть опыт программирования, можно написать кастомизированную функцию, которая будет обрабатывать копирование записей из метабазы при копировании постов. Это может потребовать использования хуков и фильтров, предлагаемых WordPress.
Заключение
В общем, решение хранить сноски в таблице postmeta, а не в основной таблице постов, связано с архитектурными соображениями WordPress. Это обеспечивает гибкость и оптимизацию, но также и вызывает сложности в определенных сценариях, таких как копирование постов. Вы можете рассмотреть использование плагинов или кастомизацию функционала, чтобы решить эту проблему, если это необходимо для вашего рабочего процесса.
Если у вас есть дополнительные вопросы или нужна помощь с конкретными плагинами, не стесняйтесь обратиться.