这取决于您想在何处显示小部件。
让我们从小部件区域(侧栏)注册开始:
add_action( \'wp_loaded\', \'wpse_76959_register_widget_area\' );
function wpse_76959_register_widget_area()
{
register_sidebar(
array (
\'name\' => __(
\'Widgets on page Sample Page\',
\'theme_textdomain\'
),
\'description\' => __(
\'Will be used on a page with a slug "sample-page" only.\',
\'theme_textdomain\'
),
\'id\' => \'sample-only\',
\'before_widget\' => \'<div id="sample-only-widget">\',
\'after_widget\' => \'</div>\',
\'before_title\' => \'<h2>\',
\'after_title\' => \'</h2>\',
)
);
}
这很简单。我们用一些自定义标记注册一个新的小部件区域。
现在我们必须在某处展示它。我们可以在page.php
模板:
do_action( \'show_sample_widget\' );
或者我们可以使用现有的操作,这将限制小部件可用的位置。例如,操作
loop_start
我们第一次打电话的时候
the_post()
在循环中。如果我们想将小部件设置在页面内容的顶部,我们可以使用该挂钩:
add_action( \'loop_start\', \'wpse_76959_render_widget\' );
function wpse_76959_render_widget()
{
is_page( \'sample-page\' ) && dynamic_sidebar( \'sample-only\' );
remove_action( current_filter(), __FUNCTION__ );
}
对于我们将使用的自定义操作:
add_action( \'show_sample_widget\', \'wpse_76959_render_widget\' );