假设我有一个只显示其名称的小部件:
<p>
<?php echo $args[\'widget_id\'] ?>
</p>
因此,当我拖动(&A);将我的小部件放到它显示的任何侧栏:
<p>
myWidget-number
</p>
问题是我想用一个短代码调用此小部件:
(...)
ob_start();
the_widget(MyWidget);
return ob_get_clean();
}
add_shortcode(\'myWidget_short\', \'myWidget_shortcode\');
当我执行[myWidget\\u short]时,它只显示
<p>
</p>
有没有办法用一个短代码来调用widget的ID?
最合适的回答,由SO网友:Wordpressor 整理而成
我相信“一招小马”是对的。
短代码小部件没有ID,所以我找到了解决方法。
首先我使用了PHP rand函数:
$var = rand();
然后将“var”添加到ID中,这样就不会与调用同一小部件的其他短代码发生冲突(每个短代码在ID的末尾都有不同的随机数):
<div id="myWidget-<?php echo $var?>;"></div>
SO网友:Marketing Consultant
我构建了一个用于调用侧栏的短代码和一个用于将小部件调用到Total Widget Control. 侧边栏很容易创建,只需调用dynamic_sidebar
ob\\U start()内部;
然而,单个小部件的调用相当复杂。global $wp_registered_widgets
我认为是包含完整小部件实例的全局变量。您需要首先创建自己的函数来获取小部件实例,然后需要调用小部件回调函数来显示小部件。
您尝试使用的代码the_widget
实际上需要将小部件实例作为参数传递。它无法找到小部件本身。