[Помогите] Постинг в wp с проверкой наличия категории

Тема в разделе "Wordpress", создана пользователем Genk0, 19 мар 2014.

Модераторы: DzSoft, Sorcus
  1. Genk0

    Genk0

    Регистр.:
    2 июн 2010
    Сообщения:
    10
    Симпатии:
    10
    PHP:
    $post= array(
    'post_title' => 'My post',
    'post_content' => 'This is my post.',
    'post_status' => 'publish',
    'post_author' => 1,
    'post_category' => array(8,39)
    );
    wp_insert_post($post);
    Вопрос, как на уровне движка сделать проверку на наличие категории (по названию) при запросе wp_insert_post(), и если категории нет - создать ее и применить к публикации?

    Иными словами, у меня есть только массив данных о публикации (тайтл, контент, автор) и название категории, т.е. для post_category у меня нет ID категории, только название.
     
    Шумадан нравится это.
  2. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    Код:
    add_action( 'wp_insert_post', 'force_add_categories', 1, 1);
    function force_add_categories( $post) {
        проверяешь и создаёшь категории если нужно
        $category='location';// category name for the post
        $cat_ID = get_cat_ID( $category );
        if($cat_ID ==0){
           $cat_name = array('cat_name'=> $category);
           wp_insert_category($cat_name);
        }
        $new_cat_ID = get_cat_ID($category);
         $post['post_category'] = array($new_cat_ID);
    }
     
    Последнее редактирование: 19 мар 2014
    Solus_Rex и Genk0 нравится это.
  3. Genk0

    Genk0

    Регистр.:
    2 июн 2010
    Сообщения:
    10
    Симпатии:
    10
    Отлично :alko:
    А как быть с подкатегориями?
    Статья находится в Категория/Подкатегория
     
    Шумадан нравится это.
  4. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    ну, по аналогии
    http://codex.wordpress.org/Function_Reference/wp_insert_category
    Код:
    cat_defaults = array(
      'cat_ID' => 0,
      'cat_name' => ,
      'category_description' => ,
      'category_nicename' => ,
      'category_parent' => ,
      'taxonomy' => 'category' );
    обрати внимание на category_parent, сначала проверяешь и создаешь парента, потом имешь парент айди и создаёшь нужную, потом используешь её в качестве id
     
    Genk0 нравится это.