2010-06-09 2 views
7

Моя цель состоит в том, чтобы использовать некоторый тип метода по умолчанию для проверки наличия категории в Wordpress, а если нет, добавьте категорию. То же самое с тегами.Wordpress: автоматически вставлять категории и теги, если они не существуют?

Вот беспорядок я сделал, пытаясь сделать это случиться:

<?php 
    if (is_term('football', 'category')) { 
    } 
    else (
     $new_cat = array('cat_name' => 'Football', 'category_description' => 'Football Blogs', 'category_nicename' => 'category-slug', 'category_parent' => 'sports'); 
     $my_cat_id = wp_insert_category($new_cat); 
    ) 

Я планирую добавить это как плагин. Любые мысли или помощь были бы замечательными!

+0

Сори, не ставил в коде для заявления: user351297

ответ

9

Вы можете просто запустить;

wp_insert_term('football', 'category', array(
    'description' => 'Football Blogs', 
    'slug' => 'category-slug', 
    'parent' => 4 // must be the ID, not name 
)); 

Функция не добавит термин, если он уже существует для этой таксономии!

Из интереса, когда вы будете называть этот тип кода в своем плагине? Убедитесь, что вы зарегистрировали его в функции активации активации, иначе он будет работать при каждой загрузке!

ОБНОВЛЕНИЕ

Чтобы получить идентификатор на срок от пули, использование;

$term_ID = 0; 
if ($term = get_term_by('slug', 'term_slug_name', 'taxonomy')) 
    $term_ID = $term->term_id; 

Заменить таксономию таксономии этого термина - в вашем случае «категория».

+0

Человек, есть ли возможность использования пули для родителей? Или повернуть код вокруг, используя атрибут slug? Потому что мне придется вручную настроить код, чтобы принять ID и вставить родительские термины в начале (вместо того, чтобы просто знать имя слизня). – user351297

+0

Нет проблем - проверьте обновленный ответ :) – TheDeadMedic

0

Вот как назначить и создать категорию, если не существует

$pid = 168; // post we will set it's categories 
$cat_name = 'lova'; // category name we want to assign the post to 
$taxonomy = 'category'; // category by default for posts for other custom post types like woo-commerce it is product_cat 
$append = true ;// true means it will add the cateogry beside already set categories. false will overwrite 

//get the category to check if exists 
$cat = get_term_by('name', $cat_name , $taxonomy); 

//check existence 
if($cat == false){ 

    //cateogry not exist create it 
    $cat = wp_insert_term($cat_name, $taxonomy); 

    //category id of inserted cat 
    $cat_id = $cat['term_id'] ; 

}else{ 

    //category already exists let's get it's id 
    $cat_id = $cat->term_id ; 
} 

//setting post category 
$res=wp_set_post_terms($pid,array($cat_id),$taxonomy ,$append); 

var_dump($res); 

 Смежные вопросы

  • Нет связанных вопросов^_^