如何在主页上的默认提要之前添加小部件

在我的 Genesis Magazine pro 主题中,我试图在标题和内容之间添加一个小部件区域。我正在尝试做的在这里得到了完美的描述:https : //wpsites.net/web-design/add-widget-to-magazine-pro-front-page/但它似乎不起作用。当我将一个新的小部件添加到新的 before-home-top 小部件时,没有任何显示。


我试过用我的 front-page.php 替换


<?php

/**

 * Magazine Pro.

 *

 * This file adds the front page to the Magazine Pro Theme.

 *

 * @package Magazine

 * @author  StudioPress

 * @license GPL-2.0+

 * @link    http://my.studiopress.com/themes/magazine/

 */


add_action( 'genesis_meta', 'magazine_home_genesis_meta' );

/**

 * Add widget support for homepage. If no widgets active, display the default loop.

 *

 * @since 3.0.0

 */

function magazine_home_genesis_meta() {


    if ( is_active_sidebar( 'home-top' ) || is_active_sidebar( 'home-middle' ) || is_active_sidebar( 'home-bottom' ) ) {


        // Force content-sidebar layout setting.

        add_filter( 'genesis_site_layout', '__genesis_return_content_sidebar' );


        // Add magazine-home body class.

        add_filter( 'body_class', 'magazine_body_class' );


            // Add homepage widgets.

        add_action( 'genesis_before_content_sidebar_wrap', 'before_home_top' );


        // Remove the default Genesis loop.

        remove_action( 'genesis_loop', 'genesis_do_loop' );


        // Add homepage widgets.

        add_action( 'genesis_loop', 'magazine_homepage_widgets' );


    }


}


// Add body class to front page.

function magazine_body_class( $classes ) {


    $classes[] = 'magazine-home';


    return $classes;


}



function before_home_top() {


    genesis_widget_area( 'before-home-top', array(

        'before' => '<div class="before-home-top widget-area">',

        'after'  => '</div>',

    ) );


}


// Output the widget areas for the front page.

function magazine_homepage_widgets() {


    echo '<h2 class="screen-reader-text">' . __( 'Main Content', 'magazine-pro' ) . '</h2>';


我在我的functions.php中添加了以下内容


genesis_register_sidebar( array(

    'id'          => 'before-home-top',

    'name'        => __( 'Before Home Top', 'magazine-pro' ),

) );

我想在那里添加一个自定义 HTML 小部件,但没有显示任何内容。任何帮助将非常感激!


至尊宝的传说
浏览 201回答 1
1回答

慕尼黑8549860

您在functions.php 中注册的侧边栏的名称是before-home-top.您的首页代码中有一个条件,用于检查三个侧边栏中的任何一个是否处于活动状态(包含小部件)。您没有看到任何内容的原因是因为这些检查都不是针对before-home-top.你的问题是这一行:if&nbsp;(&nbsp;is_active_sidebar(&nbsp;'home-top'&nbsp;)&nbsp;||&nbsp;is_active_sidebar(&nbsp;'home-middle'&nbsp;)&nbsp;||&nbsp;is_active_sidebar(&nbsp;'home-bottom'&nbsp;)&nbsp;)&nbsp;{将您的侧边栏添加到该检查列表中:if&nbsp;(&nbsp;is_active_sidebar(&nbsp;'before-home-top'&nbsp;)&nbsp;||&nbsp;is_active_sidebar(&nbsp;'home-top'&nbsp;)&nbsp;||&nbsp;is_active_sidebar(&nbsp;'home-middle'&nbsp;)&nbsp;||&nbsp;is_active_sidebar(&nbsp;'home-bottom'&nbsp;)&nbsp;)&nbsp;{您可能还希望删除您不打算注册的任何侧边栏。
打开App,查看更多内容
随时随地看视频慕课网APP