[表示] - > [ウィジェット]メニューには、ドラッグアンドドロップでサイドバーに表示できるウィジェットのリストがあります。
これらのカスタムウィジェットのHTML/PHPコードはどこにありますか?
私はWordPressの関数リファレンスを見てきましたが、何も見つかりませんでした。きっとこれらのウィジェットはHTML/PHPテンプレートから引っ張られなければなりません。
私が知りたいのは、デフォルトでウィジェットのタイトルが<h3>
タグで、それを<h5>
タグに変更したいからです。また、<hr />
やその他のものを追加する必要があります。
theme/includes/widgets.php
ファイルを調べましたが、何も見つかりませんでした。
ちなみに私のテーマを変更するためにTwenty Elevenのコピーを使っています。
theme/sidebar.php
のコードは(!dynamic_sidebar())
のためのものですが、私のサイドバー は dynamicなので、このコードは役に立ちません。
WordPress Widgets API は、さまざまなウィジェットの作成方法とサイドバーの登録方法です。
新しいウィジェットを作成するときには、任意のウィジェットに追加できる変数があります。それらは register_sidebars
引数からそれらの値を得ます。
args (文字列/配列)(オプション)
'name'と 'id'の値に基づいてサイドバーを構築します。デフォルト:なしname
- サイドバーの名前。id
- サイドバーのID。before_widget
- 各ウィジェットの前に配置するHTML。after_widget
- 各ウィジェットの後に配置するHTML。before_title
- すべてのタイトルの前に配置するHTML。after_title
- すべてのタイトルの後に配置するHTML。
<?php
add_action( 'widgets_init', 'prefix_register_sidebars' );
function prefix_register_sidebars() {
$args = array(
'name' => 'My Sidebar',
'id' => 'my-sidebar',
'before_widget' => '<div id="%1$s" class="widget %2$s">',,
'after_widget' => '</div><hr />',
'before_title' => '<h5 class="widgettitle">',
'after_title' => '</h5>'
);
register_sidebars( $args );
}
class MY_Widget extends WP_Widget {
function my_widget( $args, $instance ) {
$widget_ops = array(
'description' => 'My Widget Description'
);
parent::WP_Widget(false, 'My Widget Name', $widget_ops );
}
function widget() { // This controls the display of the widget
$title = 'My Widget Title';
echo $before_widget; // Outputs the the 'before_widget' register_sidebars setting
echo $title; //Will be wrapped in the 'before_title' and 'after_title' settings
echo '<p>This is my widget output</p>';
echo $after_widget; //Outputs the 'after_widget' settings
}
}
add_action( 'widgets_init', 'prefix_register_widgets' );
function prefix_register_widgets() {
register_widget( 'my_widget' );
}
それはfunctions.phpにあります
関数twentyeleven_widgets_init(){
register_widget( 'Twenty_Eleven_Ephemera_Widget' );
register_sidebar( array(
'name' => __( 'Main Sidebar', 'twentyeleven' ),
'id' => 'sidebar-1',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => "</aside>",
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );