Support » Plugin: WP-Blocks » [Plugin: WP-Blocks] Getting a random block by regex

  • bigcalm

    (@bigcalm)


    This shouldn’t be WP version specific.

    function get_wp_block_random($block_slug_regex) {
        global $wpdb;
        $block_slug_regex = trim($block_slug_regex);
        $data = (array)$wpdb->get_results("SELECT id FROM {$wpdb->prefix}wpb_content WHERE name REGEXP '{$block_slug_regex}' AND active = TRUE");
        if (isset($data) && is_array($data) && count($data) > 0)
        {
          $arrayIndex = array();
          foreach ($data as $row)
          {
            $arrayIndex[] = $row->id;
          }
          $randomIndex = mt_rand(0, count($arrayIndex) - 1);
    
          return get_wp_block_by_id($arrayIndex[$randomIndex]);
        }
      }

    This will allow you to get a single random block based upon a regex. For example:
    <?php get_wp_block_random('^testimonial_'); ?>
    Will return a block which has a name starting with testimonial_

    http://wordpress.org/extend/plugins/wp-blocks/

  • The topic ‘[Plugin: WP-Blocks] Getting a random block by regex’ is closed to new replies.