programing

워드프레스:카테고리 및 태그가 존재하지 않는 경우 자동으로 삽입하시겠습니까?

i4 2023. 2. 20. 23:56
반응형

워드프레스:카테고리 및 태그가 존재하지 않는 경우 자동으로 삽입하시겠습니까?

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);
    ) 

이것을 플러그인으로 추가할 예정입니다.어떤 생각이나 도움이라도 좋습니다!

그냥 뛰어가도 돼

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

해당 분류법에 대한 용어가 이미 있는 경우 함수는 용어를 추가하지 않습니다.

관심 밖입니다만, 플러그인에서 이런 종류의 코드를 언제 호출할 예정입니까?활성화 후크 기능 내에 등록해야 합니다. 그렇지 않으면 로드 시마다 실행됩니다.

갱신하다

슬러그로 용어의 ID를 얻으려면 다음을 사용합니다.

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

'taxonomy'를 용어의 분류법(예: 'category')으로 대체합니다.

범주가 없는 경우 범주를 할당하고 생성하는 방법은 다음과 같습니다.

$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 );

안녕하세요 카테고리가 존재하지 않는 경우에도 이 옵션을 사용할 수 있습니다.

//Get the categories names for every post in archive page using 'get_the_terms( ID, 'taxnomoy')'.
// Write your HTML Code/term name that you want to show if the category/term does not exist for the CPT (Custom Post Type) post

<?php $categories_name  = get_the_terms( $post->ID, "postino-happening-state" );

if( $categories_name == false ) :  // if caterory/term not exist ?>
// Write something...
<?php else: // if category exist ?>
// Write something...
<?php endif; ?>

언급URL : https://stackoverflow.com/questions/3010124/wordpress-insert-category-tags-automatically-if-they-dont-exist

반응형