私は、ユーザーが「ページ/投稿タイプ」を作成し、タイプスタイルをカスタマイズし、そしてそのタイプでページ/投稿をタグ付けすることを可能にするプラグインに取り組んでいます。このすべての作品。私の問題は、このプラグインはそれらがそのタイプにウィジェットを添付できるようにする必要があるということです。
私はいつでも「タイプ」がいくつあるかを知る方法がありません。
プラグインは次のように機能します。
ページ/投稿が表示されると、そのページにタイプがあるかどうかが検出されます。もしそうなら、それはそのタイプにすべての関係のないデータを引き込む。
すべてが完璧に動作します。
サイドバーを登録する必要があることはわかっていますが、タイプがいくつあるかわからず、ユーザーが気軽に作成および削除できるため、各タイプに登録することはできません。
私の計画:
サイドバー機能が私のプラグインに正しく溶け込まなければならないので、私は本当に別のプラグインを使うことができません。これがうまくいくかどうか、あるいはどこから始めればいいのかさえわかりません。正しい方向への任意のプッシュは素晴らしいでしょう!
サイドバーとそこに配置されたアイテムを作成しただけです。ドロップダウンボックスを追加して特別な場所を割り当てました。
$type . '_sidebar'
$type . '_sidebar'
を登録します(例:dog_sidebar
)wp-admin/widgets.php?sidebar_type=dog_sidebar
))。notと表示されるべきサイドバーをすべて除外してください。あなたはこの機能を使用することができます:
global $wp_registered_sidebars;
$type =filter_input( INPUT_GET, 'sidebar_type', FILTER_SANITIZE_STRIPPED );
if ( empty( $type ) )
return;
if ( isset( $wp_registered_sidebars[ $type ] ) ) {
$keep = array( $type => $wp_registered_sidebars[ $type ] );
$wp_registered_sidebars = array_intersect_key( $keep, $wp_registered_sidebars );
}
}
add_action( 'sidebar_admin_setup', 'filter_sidebars', 1, 0 );
たとえば、Twenty 12には、3つの登録済みサイドバー(サイドバーID)があります:sidebar-1、sidebar-2、およびsidebar-3です。ここでyour-blogdoma.in/wp-admin/widgets.php?sidebar_type=sidebar-3
に移動すると、残りの3番目のサイドバーだけが残ります(ID sidebar-3
)。
サイドバーdog_sidebar
を登録してyour-blogdoma.in/wp-admin/widgets.php?sidebar_type=dog_sidebar
にアクセスした場合、唯一の表示されるサイドバーは 'Dog Sidebar'(ID dog_sidebar
)です。
プラグインは "type"のIDに基づいてサイドバーのデータを格納します
これをする必要はありません。すべてのサイドバーはそれ自身のデータを格納します。しかし、 "はサイドバーのデータを保存します"であなたが試みたことを誤解したかもしれません。