最合适的回答,由SO网友:Ignat B. 整理而成
您的代码看起来很好,注意事项也很正确。为了实现您的目标,我收集HTML并将其打包如下:
而不是打电话<?php dynamic_sidebar($sidebar_id); ?>
使用<?php dynamic_sidebar_replaced($sidebar_id); ?>
使用以下函数(将其添加到functions.php):
function dynamic_sidebar_replaced($sidebar_id) {
if (is_single()) { // Optionally, to ensure you\'re at the single post template.
ob_start(); // Start gathering output
dynamic_sidebar($sidebar_id);
global $post;
$POST_NAME = $post->post_name;
$sidebar = preg_replace(\'/\\{(POST_NAME)\\}/e\', "$$1", $sidebar);
ob_end_clean();
echo $sidebar;
return \'\';
}
dynamic_sidebar($sidebar_id);
}