[Помогите] XML-RPC - Как указать нужную подкатегорию?

Тема в разделе "Wordpress", создана пользователем SoaringHawk, 22 авг 2010.

Статус темы:
Закрыта.
Модераторы: DzSoft, Sorcus
  1. SoaringHawk

    SoaringHawk Постоялец

    Регистр.:
    25 апр 2009
    Сообщения:
    61
    Симпатии:
    2
    На блоге примерно следующая структура категорий/подкатегорий:
    Код:
    1990-2000
    --...
    --Фильмы
    До 1990
    --...
    --Фильмы
    И при постинге получается так, что если я указываю
    PHP:
    $post['categories'] = array('До 1990','Фильмы');
    то пост появляется в "Фильмах" "1990-2000"...

    Как указать к какой родительской категории относится подкатегория, если подкатегорий с таким именем не одна?

    PS Вообще мне показалось странным, что категории выбираются по имени, а не по ид.
     
  2. Fredy BackSlash

    Fredy BackSlash Создатель

    Регистр.:
    29 май 2008
    Сообщения:
    32
    Симпатии:
    0
    Код:
    $post['categories'] = array('До 1990','Фильмы');  
    Это вообще от куда? весь код покажите
     
  3. реалти

    реалти

    Регистр.:
    30 янв 2009
    Сообщения:
    364
    Симпатии:
    67
    Категории можно выбрать и по имени, и по ID.
    В Вашем случае целесообразнее сделать по ID.
     
  4. SoaringHawk

    SoaringHawk Постоялец

    Регистр.:
    25 апр 2009
    Сообщения:
    61
    Симпатии:
    2
    Нашел, где в xmlrpc.php обрабатываются категории для нового поста - строка 2171 (актуально для оригинального файла из зипы wp3.0.1ru).
    Там код "расфасовки":
    PHP:
            if ( is_array($catnames) ) {
                foreach (
    $catnames as $cat) {
                    
    $post_category[] = get_cat_ID($cat);
                }
            }
    где get_cat_ID изначально подразумевает принятие в качестве аргумента строку (читай имя, а не ид категории), хотя $post_category собирает уже ид. Т.е. нужно всего-то "обуниверсалить" код и все. :)
    Для себя я сделал так:
    PHP:
            if ( is_array($catnames) ) {
                foreach (
    $catnames as $cat) {
                    if(
    strlen($cat) <= && preg_match("~^[0-9]+$~"$cat)) {$post_category[] = $cat;}
                    else {
    $post_category[] = get_cat_ID($cat);}
                }
            }
    Я не использую категории, имена которых состоят только из цифр и вряд ли насоздаю их более 999 :)

    PS Странно, что подобное не реализовано до сих пор...
     
Статус темы:
Закрыта.