ВордПресс: Аутоматски направите бочне траке за сваку категорију

Функција регистрације бочних трака за сваку ВордПресс категорију

Поједностављивао сам ову веб страницу да бих убрзао брзину и покушао да је боље уновчим без иритације читалаца. Постоји више начина на које сам уновчио веб локацију ... ево их од највише до најмање уносних:

  • Директно спонзорство од партнерских компанија. Радимо на колективним стратегијама које укључују све, од вебинара до дељења на друштвеним мрежама, за промоцију њихових догађаја, производа и / или услуга.
  • Аффилиате маркетинг из низа придружених платформи. Претражујем и идентификујем компаније, осигуравам да буду угледне и делим одређене чланке које пишем или огласе које пружају.
  • Маркетинг ресурса од партнера који пушта догађаји повезани са маркетингом, студије случаја и белешке.
  • Банер оглашавање од Гоогле-а, где се релевантни огласи аутоматски дистрибуирају кроз мој образац и садржај.

ВордПресс бочне траке

Захваљујући удруженом маркетингу који пружа неке пристојне приходе, одлучио сам да желим да истакнем врло одређене оглашаваче на основу категорије веб локације, па сам желео да динамички креирам бочне траке без потребе да кодирам сваку бочну траку на веб локацији. На овај начин, ако додам категорију - бочна трака се аутоматски појављује у мом подручју виџета и могу да додам оглас.

Да бих то урадио, требао ми је одређени код у фунцтионс.пхп датотека моје дете теме. Срећом, открио сам да је неко већ написао скоро све што ми треба: Направите виџет бочне траке за сваку категорију у ВордПресс-у. Само сам желео неке додатне контроле у ​​којим категоријама бих можда желео да прикажем бочне траке.

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

Помоћу низа аргумената за преузимање категорија могу да укључим и изузмем било које категорије које желим да циљам. Унутар фореацх изјаве могу да модификујем и прилагодим изглед свом форматирању бочне траке целокупне ВордПресс странице.

Поред тога, у мојој фунцтионс.пхп, Желим да додам функцију да видим да ли бочна трака постоји и да ли јој је додат виџет:

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

ВордПресс бочне траке за сваку категорију

Резултат је управо оно што сам желео:

ВордПресс Видгет бочне траке за сваку категорију

Сада, без обзира на то да ли додајем, уређујем или бришем категорије ... моја подручја бочне траке ће увек бити ажурирана!

Шта ви мислите?

Ова страница користи Акисмет како би смањила нежељену пошту. Сазнајте како се ваш коментар обрађује.