Как создать общее произвольное поле для записей

В тех случаях, когда информация общая для нескольких записей (постов), удобно использовать общее произвольное поле.

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

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

За основу взят код с сайта wp-kama.ru.

В этой заметке я не буду сильно углубляться в детали. Написал её для того, чтобы не забыть то, как я это сделал. И возможно кому-то понадобится тоже. Но необходимы какие-то знания в области WordPress и той темы (создания произвольных полей), которая в данной статье описывается. Это нужно для того, чтобы понимать в какие файлы и что нужно записывать. Здесь я на этом не останавливаюсь, а описываю лишь некоторые особенности и привожу сам код.

I. Создаём 3 дополнительных произвольных поля

В первом поле (mainPostId) будет содержаться ID записи, в котором будем хранить общие данные. Для этой цели (для общих данных) можно использовать ID первой записи.

Второе поле (fieldBelongOtherPost) будет показываться в том случае, когда заполнено первое поле – mainPostId. Это необходимо, чтобы случайно не перезаписать данные основного поста, когда содержимое на страницу ещё не передаётся. Если этого не сделать, можно перезаписать основной пост пустыми данными.

Третье поле (fieldCurrentPost) будет показывать содержимое текущего поста. На тот случай, если это главная запись. Или мы захотим сделать её главной.

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

Код для создания произвольных полей:

II. Подключение произвольных полей

Далее, в этом же файле ниже, подключаем стили. Это можно сделать как через php файл, так и вынести отдельно в css. У меня это сделано через php, потому что изначально все было в одном файле, пока серьёзно не разрослось. И некогда было всё это переносить в отдельный css файл.

Теперь подключаем основной файл с произвольным полем:

Удобно подключать свои произвольные поля через отдельные файлы. Со временем, добавляя всё новые произвольные поля, если они находятся в одном файле, это усложняет нахождение и добавление нового содержимого.

Ну и собственно сам код:

Вот как общие поля выглядят в админке:

III. Функционал для сохранения данных их произвольных полей

Теперь это дело нужно сохранить. В сохранении у нас участвуют две функции. Первая сохраняет свои произвольные поля для текущей записи. Вторая функция сохраняет произвольные поля для основной записи.

IV. Выводим общее содержимое на странице single

Теперь всё готово. Осталось вывести данные на странице записей:

Привет. Ты находишься на моём сайте. Я разработчик. Здесь я делюсь своими наработками и знаниями. Спрашивай в комментариях, если тебе что-то не понятно или пиши, если есть что добавить.

Если вам пригодилась информация, вы можете поблагодарить автора сайта символическим пожертвованием:

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи: "Как создать общее произвольное поле для записей".

Ваш e-mail не будет опубликован. Обязательные поля помечены *