Метаполя Для Металентяя

Метаполя Для Металентяя

Сейчас «рисую» новый, более навороченный и умный WordPress плагин, для работы с GameBoss партнеркой — «GameBoss Partner». И в перспективе собираюсь частично использовать его код и для партнерки от Алавара. По ходу дела возникают всякие проблемки и проблемы. А когда ты сталкиваешься с проблемой то проще всего, а часто еще и умнее всего, задействовать свою лень в созидательных целях. Нуте-с, начинаем ленится созидающе 😉

К каждой записи в WordPress можно добавить сколько угодно именованных полей содержащих текстовые данные (в php все текст, или может быть представлено как текст). Вот эти-то поля и называются «метаполями», или же «произвольными полями». Подробнее здесь и здесь.

Метаполя можно добавить вручную, когда редактируешь запись, или с помощью sql если вносишь записи автоматом. Но sql, это как раз то от чего я и хотел уйти. Значится что? Правильно RTFM.

Идем читать WordPress codex, понимаем что именно скрывается за буквой F(ucking), лезем в мой любимый WordPress форум и в конце-концов оказываемся именно там, откуда и следовало начинать наши поиски: в исходниках WordPress, модуль /wp-includes/post.php

Для работы с матаполями были обнаружены следующие функции, с вполне говорящими именами и параметрами: function add_post_meta($post_id, $key, $value, $unique = false)

Добавить к записи метаданные. Где $post_id – ID записи, $key – имя метаполя а $value – значение метаполя. Переменная $unique установленная в true заставит функцию завершится с ошибкой если такое поле уже есть.

function delete_post_meta($post_id, $key, $value = ”)

Удалить из записи $post_id метаполе $key.

Если задано значение для $value, то поле будет удалено только если его значение совпадает со значением $value.

function get_post_meta($post_id, $key, $single = false)

Получить значение метаполя $key, для записи $post_id в виде массива. Если $single = true, то в виде переменной.

function update_post_meta($post_id, $key, $value, $prev_value = ”)

Записать для поста $post_id в метаполе $key значение $value. Если $prev_value содержит значение, то обновление будет успешным только в случае совпадения $prev_value и значения метаполя в базе.

function delete_post_meta_by_key($post_meta_key)

Удалить метаполя с именем $post_meta_key для всех записей.

function get_post_custom($post_id = 0)

Возвращает массив метаполей связанные с записью $post_id, либо с текущей, если $post_id=0.

function get_post_custom_keys( $post_id = 0 )

Возвращает массив имен метаполей связанные с записью $post_id, либо с текущей, если $post_id=0.

function get_post_custom_values( $key = ”, $post_id = 0 )

Возвращает массив значений метаполя $key связанный с записью $post_id, либо с текущей, если $post_id=0.

Перед использованием хотя бы один раз стоит заглянуть в код, например что-бы увидеть что когда получаешь данные поста, автоматом выбираются и связанные с ним метаданные. То есть использование метаполей очень часто оказывается «бесплатно». Ну или для того чтобы не чесать репку получая из get_post_meta() массив, хотя ты точно уверен что писал в базу скаляр. И конечно же для того чтобы уверится – ленится было замечательной идеей!

Последняя мысль, которая как считает Штирлиц, лучше всего запоминается:

Ленитесь же, други моя, и воздастся вам по не деянию вашему!

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

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

Оставьте мне собщение