内容营销

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小部件侧栏

现在,无论我是添加,编辑还是删除类别,我的侧边栏区域将始终保持最新状态!

Douglas Karr

Douglas Karr 首席营销官是 开放洞察 和创始人 Martech Zone。 道格拉斯帮助了数十家成功的 MarTech 初创公司,协助进行了超过 5 亿美元的 MarTech 收购和投资尽职调查,并继续协助公司实施和自动化其销售和营销策略。 道格拉斯是国际公认的数字化转型和 MarTech 专家和演讲者。 道格拉斯还是一本傻瓜指南和一本商业领导力书籍的出版作者。

相关文章

返回顶部按钮
关闭

检测到Adblock

Martech Zone 我们能够免费为您提供这些内容,因为我们通过广告收入、联属链接和赞助从我们的网站中获利。 如果您在浏览我们的网站时删除广告拦截器,我们将不胜感激。