2016-07-29 4 views
3

Этот код показывает соответствующую категорию в области администрирования Wordpress. но не показывать подкатегорию.Создайте категории и несколько подкатегорий программным способом

Мне нужно показать 3 категории и 3 подкатегории для каждой категории?

Это то, что я хотел бы иметь для каждой категории:

Категория A

  • подкатегорию 1
  • подкатегория 2
  • подкатегория 3

У меня есть следующий код в файле functions.php темы wordpress:

//create the main category 
wp_insert_term(

// the name of the category 
'Category A', 

// the taxonomy, which in this case if category (don't change) 
'category', 

array(

// what to use in the url for term archive 
'slug' => 'category-a', 
));` 

Тогда для каждого суб-категории:

wp_insert_term(

// the name of the sub-category 
'Sub-category 1', 

// the taxonomy 'category' (don't change) 
'category', 

array(
// what to use in the url for term archive 
'slug' => 'sub-cat-1', 

// link with main category. In the case, become a child of the "Category A" parent 
'parent'=> term_exists('Category A', 'category')['term_id'] 

)); 

Но я получаю сообщение об ошибке:

Parse error: parse error, expecting `')'' in line 57 …

В соответствии с 'parent'=> term_exists('Category A', 'category')['term_id'].

Что я делаю неправильно?

+0

Ошибка синтаксического анализа ожидает в функции подкатегорию. – FRQ6692

ответ

4

Проблема в том, что вам нужно получить родительский термин id вне функции, чтобы избежать ошибки. Вы легко можете сделать это следующим образом:

$parent_term_a = term_exists('Category A', 'category'); // array is returned if taxonomy is given 
$parent_term_a_id = $parent_term_a['term_id']; // get numeric term id 

// First subcategory 
wp_insert_term(
    'Sub-category 1', // the term 
    'category', // the taxonomy 
    array(
     // 'description'=> 'Some description.', 
     'slug' => 'sub-cat-1a', 
     'parent'=> $parent_term_a_id 
    ) 
); 

// Second subcategory 
wp_insert_term(
    'Sub-category 2', // the term 
    'category', // the taxonomy 
    array(
     // 'description'=> 'Some description.', 
     'slug' => 'sub-cat-2a', 
     'parent'=> $parent_term_a_id 
    ) 
); 

// Third subcategory 
wp_insert_term(
    'Sub-category 3', // the term 
    'category', // the taxonomy 
    array(
     // 'description'=> 'Some description.', 
     'slug' => 'sub-cat-3a', 
     'parent'=> $parent_term_a_id 
    ) 
); 

Тогда вы будете использовать для других 2 групп подкатегорий:

// For subcategory group of Category B 
$parent_term_b = term_exists('Category B', 'category'); 
$parent_term_b_id = $parent_term_b['term_id']; 

// For subcategory group of Category C 
$parent_term_c = term_exists('Category C', 'category'); 
$parent_term_c_id = $parent_term_c['term_id']; 

... Точно так же (заботиться, чтобы иметь уникальный слизняка для каждой подкатегории, что означают на всех 9 различных подкатегорий слизней) ...

Ссылка:

+0

wow, что отлично работает, – FRQ6692

+0

Нужно добавьте 3 подкатегории для категории A .. в другие слова 3 подкатегории для 1 – FRQ6692

1

Похоже, вы пропустили первую цитату из названия родительской категории и может объяснить ошибки синтаксического анализа, который должен быть:

// the name of the category 
'Category A', 

Edited комментарий:

$parent = term_exists('Category A', 'category'); 
$termId = $parent['term_id']; 

wp_insert_term(

// the name of the sub-category 
'Sub-category 1', 

// the taxonomy 'category' (don't change) 
'category', 

array(
    // what to use in the url for term archive 
    'slug' => 'sub-cat-1', 

    // link with main category. In the case, become a child of the "Category A" parent 
    'parent'=> $termId 

)); 
+0

Я редактирую свой вопрос .. я пропустил это, пока я пишу. – FRQ6692

+0

Ошибка в этой строке '' parent '=> term_exists (' Категория A ',' category ') [' term_id ']', но я не могу ее решить. – FRQ6692

+0

Можете ли вы опубликовать фактическую ошибку, которая отображается? – phpchap

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