如何限制小部件的实例数量

时间:2015-01-15 作者:Tedskis

我正在开发一个通用小部件,随机选择要显示的图像。我只有5张图片可供选择。有没有办法将小部件的数量限制为5个,这样就不会有重复的图像/小部件?

1 个回复
SO网友:gmazzap

小部件是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
  }
} 

结束

相关推荐

MU-plugins插件是否仍通过wordpress.org/plugins部署?

我正准备发布我的第一个插件。我决定把它放在mu插件中,因为如果删除它,它会破坏依赖于它的其他代码。(这是一种开发工具,用于将变量记录到文本文件中。)那么,我可以将此提交给wp吗。o?或者他们只接受进入插件目录的插件?