4

widget_titleフィルターを特定のサイドバーのウィジェットにのみ適用する必要があります。ウィジェットが「フッター」からのものである場合、適用したい:

function widget_title_empty($output='') {
    if ($output == '') {
        return ' ';
    }
    return $output;
}
add_filter('widget_title', 'widget_title_empty');

それに。

ありがとう。

4

3 に答える 3

3

ハードコードされたサイドバー名を使用したいので、おそらくテーマを作成していて、サイドバーを印刷するコードを制御できると思いますか?その場合は、次のように、最初にフィルターを追加してから、再度削除することができます。

add_filter('widget_title', 'widget_title_empty');
dynamic_sidebar('footer');
remove_filter('widget_title', 'widget_title_empty');

このように、周囲のサイドバーは影響を受けません。

于 2012-12-16T19:01:01.427 に答える
1

"__return_false"ウィジェットのタイトルのみを削除する場合は、引数としてフィルターに渡すことにより、カスタム関数を作成せずにこれを行うことができます。

add_filter('widget_title', '__return_false');
dynamic_sidebar('footer');
remove_filter('widget_title', '__return_false');

http://codex.wordpress.org/Function_Reference/_return_falseを参照してください

于 2014-11-24T03:42:24.380 に答える
0

私はCalleの答えの方が好きですが、これらの条件がない場合はこれでうまくいきます。

class Example {

    protected $lastWidget = false;

    public function __construct() {
        add_filter('dynamic_sidebar_params', array($this, 'filterSidebarParams'));
    }

    /**
    * record what sidebar widget is being processed
    * @param array $widgetParams
    * @return array
    */
    public function filterSidebarParams($widgetParams) {
        $this->lastWidget = $widgetParams;

        return $widgetParams;
    }

    /**
    * check to see if last widget recorded was in sidebar
    * @param string $sidebarName
    * @return bool
    */
    public function isLastSidebar($sidebarName) {
        return $this->lastWidget && $this->lastWidget[0]['id'] == $sidebarName;
    }

}

$example = new Example();

// in your widget's code
if ($example->isLastSidebar('footer-widget-area')) {
    // you're in
}
于 2012-12-16T22:34:20.457 に答える