0

現在のフロント エンドに表示されている WordPress サイドバーを取得する機能はありますか?

4

1 に答える 1

0

うまくいくかもしれない解決策をここに投稿しました:現在のフロントエンドにWordPressウィジェットが表示されているかどうかを確認する

dynamic_sidebarは、そのサイドバーとそのサイドバーに対して呼び出されたことを登録しません。これを自分で行うのに適したフックもありません。そのため、テンプレートごとに、表示されているサイドバーをWordpressに通知する必要があります。これを行う1つの方法は、次のようなラッパー関数を作成することです。

function wrap_dynamic_sidebar( $sidebar_id )
{
    global $sidebars_in_this_template;
    $sidebars_in_this_template[] = $sidebar_id;
    return dynamic_sidebar( $sidebar_id );
}

そして、どこでもdynamic_sidebarをこれに置き換えます(ただし、このソリューションが実行可能でない可能性が非常に高いことを理解しています)。

すべてのサイドバーのリストを表示する場合は、$wp_registered_sidebarsを使用できます。

global $wp_registered_sidebars;
$sidebar_ids = array_keys( $wp_registered_sidebars );
于 2012-11-15T22:10:12.150 に答える