假设你的主题还有the_content
要填充该区域,可以使用the_content
要填充的筛选器为。因为小部件通常会回显其输出,所以还需要缓冲输出。像这样:
add_filter (\'the_content\',\'wpse304648_widget_content\');
function wpse304648_widget_content ($content) {
if (get_post_type == \'your_cpt_name\') {
ob_start ();
.. execute widget
$content = ob_get_contents();
ob_end_clean();
}
return $content;
}
现在,问题是如何在这个函数中执行小部件。您正在谈论为每个帖子创建一个单独的小部件区域。这会使您的管理小部件页面变得混乱,但这是可能的。在您的
functions.php
您可以循环浏览所有自定义帖子和
register a sidebar 以通常的方式。然后在您的小部件管理员中为每个侧栏定义一组小部件。如果您使用“您的cpt名称ID”注册侧栏,您可以这样轻松地调用它们:
dynamic_sidebar ( \'your-cpt-name-\'. get_the_ID());
这似乎更符合逻辑
build your own widget 根据帖子加载内容。在这种情况下,您只需定义一个侧栏。