WordPress : 각 카테고리에 대해 자동으로 사이드 바 만들기

워드 프레스 카테고리 별 사이드 바 등록 기능

나는 속도 시간을 개선하고 독자를 괴롭히지 않고 사이트에서 더 나은 수익을 올리기 위해이 사이트를 단순화하고 있습니다. 내가 사이트에서 수익을 창출하는 방법에는 여러 가지가 있습니다. 여기에서는 수익이 가장 높은 것부터 가장 낮은 것까지 있습니다.

  • 직접 후원 파트너 회사에서. 우리는 이벤트, 제품 및 / 또는 서비스를 홍보하기 위해 웨비나에서 소셜 미디어 공유에 이르기까지 모든 것을 통합하는 집단 전략을 수행합니다.
  • 제휴 마케팅 다양한 제휴 플랫폼에서. 나는 회사를 샅샅이 뒤지고, 그들이 평판이 좋은지 확인하고, 내가 작성한 특정 기사 나 그들이 제공하는 광고를 공유합니다.
  • 자원 마케팅 출시하는 파트너로부터 마케팅 관련 이벤트, 사례 연구 및 백서.
  • 배너 광고 내 템플릿과 콘텐츠를 통해 관련 광고가 자동으로 분산되는 Google에서

WordPress 사이드 바

상당한 수익을 제공하는 제휴 마케팅을 통해 사이트 카테고리에 따라 매우 구체적인 광고주를 집중 조명하고 싶었 기 때문에 사이트의 각 사이드 바를 하드 코딩하지 않고도 사이드 바를 동적으로 만들고 싶었습니다. 이렇게하면 카테고리를 추가하면 사이드 바가 위젯 영역에 자동으로 나타나고 광고를 추가 할 수 있습니다.

이렇게하려면 다음과 같은 특정 코드가 필요했습니다. functions.php 내 아이 테마의 파일. 고맙게도 누군가 내가 필요한 거의 모든 것을 이미 작성했음을 알았습니다. WordPress의 각 카테고리에 대한 위젯 화 된 사이드 바 만들기. 사이드 바를 표시 할 카테고리에 대한 추가 컨트롤이 필요했습니다.

function add_category_sidebars() {
    $args = array(
        'type'                     => 'post',
        'orderby'                  => 'name',
        'order'                    => 'ASC',
        'hide_empty'               => 1,
        'hierarchical'             => 1,
        'exclude'                  => '',
        'include'                  => '',
        'number'                   => '',
        'taxonomy'                 => 'category'
        ); 
    
    $categories = get_categories($args);

    foreach ($categories as $category) {
        if (0 == $category->parent)
            register_sidebar( array(
                'name' => $category->cat_name,
                'id' => $category->category_nicename . '-sidebar',
                'description' => 'This is the ' . $category->cat_name . ' widgetized area',
                'before_widget' => '<aside id="%1$s" class="widget %2$s">',
                'after_widget' => '</aside>',
                'before_title' => '<h3 class="widget-title">',
                'after_title' => '</h3>',
            ));
        }
}
add_action( 'widgets_init', 'add_category_sidebars' );

범주 검색을위한 인수 배열을 사용하여 타겟팅하려는 모든 범주를 포함하거나 제외 할 수 있습니다. foreach 문 내에서 전체 WordPress 사이트의 사이드 바 형식에 맞게 레이아웃을 수정하고 일치시킬 수 있습니다.

또한 내 functions.php, 사이드 바가 있고 위젯이 추가되었는지 확인하는 함수를 추가하고 싶습니다.

function is_sidebar_active($cat_name) {
    global $wp_registered_sidebars;
    $cat_id = get_cat_ID($cat_name);
    $widgetlist = wp_get_sidebars_widgets();
    if ($widgetlist[$cat_id])
        return true;
    return false;
}

그런 다음 내 테마 내에서 사이드 사이드 바가 등록되어 있고 위젯이있는 경우 영역을 동적으로 표시하는 코드를 추가합니다.

$queried_object = get_queried_object();
if ($queried_object) {
    $post_id = $queried_object->ID;
}
if(is_category() || in_category($cat_name, $post_id)) {
    $sidebar_id = sanitize_title($cat_name);
    if( is_sidebar_active($sidebar_id)) {
        dynamic_sidebar($sidebar_id);
    }
}

각 카테고리에 대한 WordPress 사이드 바

결과는 정확히 내가 원했던 것입니다.

각 카테고리에 대한 WordPress 위젯 사이드 바

이제 카테고리를 추가, 편집 또는 삭제하든 상관없이 내 사이드 ​​바 영역은 항상 최신 상태로 유지됩니다!

당신은 어떻게 생각하십니까?

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터 처리 방법 알아보기.