gallery-from-regex-matches

Description

A plugin which adds a shortcode: [gallery_from_regex_matches] in which a regex attribute should be specified. It will then look for matches in the descriptions and titles of all published images in your library, and create a gallery from the matches it finds.

  • Use for example like this [gallery_from_regex_matches regex="lillill" exclude_ids="764"], and it will generate a gallery of all your pictures of “Lillill”, except the one which has ID 764.
  • Sometimes it might be advicable to limit the amount of matches. that can be achieved by adding limit to the shortcode. [gallery_from_regex_matches regex="lillill" exclude_ids="764" limit="10"].
  • Sometimes you want to make a gallery of “cats” but not “catsup”, but you don’t want to add word boundary [[:>:]], in this case you can exclude_regex=catsup. Then it could look something along the line of [gallery_from_regex_matches regex="cats" exclude_regex="catsup"].
  • The same params (except for ids) as for the [media] shortcode can be used (as this plugin calls that shortcodes callback function (gallery_shortcode()) to generate the gallery), so if you want to specify a particular type (style) of gallery from for example your cat pictures , this might do the trick: [gallery_from_regex_matches regex="(cat|kitten)" type="square"].
  • The regular expressions follows the MySQL Regexp syntax
  • Some characters will per default not work inside of the shortcode, see the “Caveats” section.
  • There are no bells and whistles for this plugin but it could potentionally be added in the futre.

Caveats

Since the regex used by the plugin is specified as an attribute value inside of a shortcode, and the Shortcode Api disallows the use of certain characters which could be a part of a valid, useful regex, there are some things to consider.

Attribute values must never contain the following characters:
* Square braces: [ ]
* Quotes: ” ‘

[ … ]
The recommended method of escaping special characters in shortcode attributes is HTML encoding. Most importantly, any user input appearing in a shortcode attribute must be escaped or stripped of special characters.

  • if in the regex you need to macth a character set [a-z], then (following the shortcode Api documentation guidline), they need to be encoded. There are two encodings which the plugin accepts: “html” and “base64”
  • Currently there is no way to encode these things with help of the plugin, although it is planned for a future release, so the regexes must be encoded manually for now’
    For example, for regex w[0u][0u]ti can be expressed either:

With HTML encoding:
[gallery_from_regex_matches regex="w[0u][0u]ti" encoding="html"]

With Base64 encoding:
[gallery_from_regex_matches regex="d1swdV1bMHVddGk=" encoding="base64"]

To encode a string to base64, it can be done from the terminal like this:
% echo -n "catsup" | base64
Y2F0c3Vw
% echo -n Y2F0c3Vw | base64 --decode
catsup%

Installation

  1. unpack the zip into the /wp-content/plugins dir
  2. Activate the plugin through the ‘Plugins’ menu

Reviews

February 5, 2018
We needed to group the pictures in our gallery in a way that wasn't obvious but this plugin flexibility got the job done! Totally recommended.
Read all 1 review

Contributors & Developers

“gallery-from-regex-matches” is open source software. The following people have contributed to this plugin.

Contributors

“gallery-from-regex-matches” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “gallery-from-regex-matches” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

0.6.3

  • Fixed a bug in which attachments with no parent were never selected.

0.6.2

  • Fixed a bug with mysql query and empty regexp

0.6.1

  • Added exclude_regex shortcode parameter.

0.6.0

  • Move the regex matching into the database and use MySQL regex syntax instead of calling all posts and applying the regex filters on them. This to increase performance and to work better on big galleries.
  • Syntax for regex attr then is also slightly changed: no need to use delimiter ‘/’: “/(cat|kitten)/” is now written “(cat|kitten)“, but either way will work for backwards-compatiblity reasons.
  • Number of matches can now be limited with the limit which defaults to 10000, but can be set to a higher value if need be.

0.5.1

  • Add possibility of decoding encoded regexes, so that special characters which would collide with the Shortcode Api can still be used in them.

0.5

  • Search also title field
  • use preg_grep on array of target search fields instead of concatinating it to a string as that can lead to unforseen matches.

0.1

First pre-prod version with potential bugs in it.