小部件是PHP类,所以您可以使用静态类变量来计算小部件的使用次数。
像@Howdy_McGee 请注意,如果您的小部件随机显示图像,即使有相同数量的小部件和图像,也有可能有小部件显示相同的图像,因此您还需要解决这个问题。
这是一个粗略的、未经测试的示例,可能会帮助您解决问题:
class MyRandomImgWidget
{
private static $inited;
private static $images;
function __construct()
{
parent::__construct(\'my-random-img\', __(\'My Random Image\', \'text_domain\'));
}
function init() {
// get_images_url() below is a placeholder function to be replaced to actual code
// that retrieve/set images urls.
self::$images = get_images_url();
self::$inited = true; // make this method run only once
}
function widget() {
if (is_null(self::$inited)) { // only on first run
$this->init();
} elseif(empty(self::$images)) { // do nothing if no images
return;
}
$key = array_rand(self::$images); // get a random key from images array
$image = self::$images[$key]; // get related image url
// remove image from array, so in next call will not used again
unset(self::$images[$key]);
printf(\'<img src="%s" alt="" />\', $image); // print the image
}
}