28.02.2011


Удаление у объекта TAXONOMY


Категории: Разработанное нами — Метки: , — Administrator

На момент написания этого поста в составе системного API WordPress мы не нашли такой функции. Речь идет об удалении например у поста категории. Под термином taxonomy в WordPress подразумевается некое свойство у какого-либо из объектов. Стандартными объектами могут быть посты, в 3-ей версии появились еще custom objects. Задача этого поста не дать исчерпывающее объяснение, что такое taxonomies и объекты wordpress, а просто показать, как, например, программно у поста удалить категорию к которой он принадлежит.
Добавьте в файл functions.php активной схемы следующую функцию:

// *** delete object taxonomy ***
function delete_term_taxonomy ($term_id, $taxonomy_id) {
  global $wpdb;
  if (!$term_id || !$taxonomy_id) { return false; }
  $qu = 'DELETE FROM '.DB_NAME.'.wp_term_relationships WHERE object_id = '.$term_id.' AND term_taxonomy_id = '.$taxonomy_id;
  $rez = $wpdb–>query($qu);
  return rez;
}

Вот пример ее использования для удаления у поста категории:

$cat_blocked = get_category_by_slug('_blocked');
delete_term_taxonomy($post_id, $cat_blocked–>term_id);

Я редко использую в программном коде ID объектов, а предпочитаю получать их с помощью кодов, это и делает первая строка примера выше.



26.02.2011


Анализ двух категорий на предков — cat_is_ancestor_of


Категории: Системное — Метки: , , — Administrator

Документация на эту функцию находится здесь.
Использование:

cat_is_ancestor_of( $cat1, $cat2 );

Параметры:
$cat1 — целое(int) или объект, ID или объект для проверки, является ли он родителем второго параметра, по умолчанию ничего не используется.
$cat2 — целое(int) или объект, ID или объект для проверки, является ли он потомком для первого параметра.
Возвращаемое значение — (boolean). True если $cat1 является предком $cat2, False, если не так.



11.02.2011


Структура объекта POST


Категории: WordPress — Метки: , — Administrator

Обратиться к свойствам объекта можно так: $post->ID.
Состав объекта:

stdClass Object
(
[ID] => 88
[post_author] => 1
[post_date] => 2011-02-05 15:33:32
[post_date_gmt] => 2011-02-05 15:33:32
[post_content] =>
[post_title] =>
[post_excerpt] =>
[post_status] => publish
[comment_status] => open
[ping_status] => closed
[post_password] =>
[post_name] => at_wordpress
[to_ping] =>
[pinged] =>
[post_modified] => 2011-02-11 09:58:59
[post_modified_gmt] => 2011-02-11 09:58:59
[post_content_filtered] =>
[post_parent] => 6
[guid] => http://soft.consulting-plus.com/?page_id=88
[menu_order] => 0
[post_type] => page
[post_mime_type] =>
[comment_count] => 0
[ancestors] => Array ( [0] => 6 )
[filter] => raw
)


09.02.2011


get_post_custom — получение пар ключ-значение для custom fields поста или записи


Категории: Системное — Метки: , — Administrator

Это ссылка на документацию для этой функции.

Пример использования:

$custom_fields = get_post_custom($post_id);

Параметр необязателен, по умолчанию принимается текущий пост или страница.
Функция вернет hash-массив у которого ключами будут $keys custom fields поста или записи, а значениями будут нумерованные массивы с $values. Например:

Array (
[page_type] => Array ( [0] => topic )
[_edit_last] => Array ( [0] => 1 )
[_edit_lock] => Array ( [0] => 1297418340 )
[menu_code] => Array ( [0] => articles )
)

Такой подход предполагает, что один ключ может иметь несколько значений.



05.02.2011


Интерфейс с базой данных


Категории: Системное — Метки: , — Administrator

За основу этой статьи взята статья из документации по WordPress, это ссылка на статью.
Для работы с базой используется класс wpdb. Методы этого класса не должны вызываться напрямую, для работы с этим классом WordPress использует глобальный объект (переменную) $wpdb. Этот объект может работать с объектами только в базе данных, где установлен WordPress.

Выполнение любого запроса, метод query

<?php $wpdb–>query('query'); ?> 

query — строка запроса, если это NULL, то метод вернет из кэша результаты прошлого запроса.
результат — функция вернет целое число, которое соответствует количеству возвращенных или обработанных записей. Если возникнет ошибка SQL, то функция вернет false. Надо иметь в виду, что может возвращено и 0 и false, используйте нужные операторы сравнения: equality == против identicality ===.
Надо иметь в виду, что как и все функции этого класса, которые выполняют SQL-запросы, необходимо сделать escape для параметра SQL:

<?php $wpdb–>escape($user_entered_data_string); ?> 

Пример вызова функции:

  $qu = 'DELETE FROM '.DB_NAME.'.wp_term_relationships WHERE object_id = '.$term_id.' AND term_taxonomy_id = '.$taxonomy_id;
  $rez = $wpdb–>query($qu);
  return rez;

Это пример удаления некоторой taxonomy у объекта.

Получение одной переменной из запроса SELECT

<?php $wpdb–>get_var('query', column_offset, row_offset); ?> 

query — строка запроса, если это NULL, то метод вернет из кэша результаты прошлого запроса.
column_offset — целое (integer) число — номер колонки в recordest, по умолчанию 0.
row_offset — целое (integer) число — номер записи в recordset, по умолчанию 0.

$qu = "
  SELECT COUNT(*) AS comments_amount
    FROM soft.wp_comments w
   WHERE comment_approved = 0
";
$comments_amount = $wpdb–>get_var($qu);  

Это пример получения общего количества неподтвержденных комментариев.

Получение набора записей SELECT

get_results(‘query’, output_type); ?>

query — строка запроса, если это NULL, то метод вернет из кэша результаты прошлого запроса.
output_type — одна из четырех констант, определяющая тип возвращаемого массива (array) результатов, по умолчанию используется OBJECT. Значения могут быть такими:
OBJECT — результат будет возвращен как нумерованный массив из объектов row.
OBJECT_K — результат будет возвращен как hash-массив из объектов row, в качестве hash-ключа будет использована первая колонка в запросе, дублирующие записи будут удалены, на наш взгляд наиболее удобный для использования параметр.
ARRAY_A — результат будет возвращен как нумерованный массив из hash-массивов в качестве hash-ключей будут использоваться названия колонок запроса.
ARRAY_N — результат будет возвращен как нумерованный массив с элементами из нумерованных массивов.





Календарь


Архив