-
Notifications
You must be signed in to change notification settings - Fork 0
/
front_functions.php
42 lines (39 loc) · 1.31 KB
/
front_functions.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
/**
* Front-End functions
*/
/**
* Replace Gutenberg gallery block with the gallery shortcode.
* Tested until Gutenberg 2.4
*
* @param $the_content
*
* @return string
*
*/
if ( ! is_admin() ) {
add_filter('the_content', function($content) {
if ( ! is_main_query() ) {
return $content;
}
// Find gallery blocks
$regexp = "<ul\s[^>]*wp-block-gallery[^>]*>(.*)<\/ul>";
if ( preg_match_all("/$regexp/imsU", $content, $matches, PREG_PATTERN_ORDER) ) {
$updated = false;
foreach($matches[0] as $key => $match) {
// Find images ids
if ( preg_match_all('/\sdata-id="(.*)"/imsU', $match, $match_ids, PREG_PATTERN_ORDER) ) {
/**
* We are still before do_shortcode , which has filter priority 10
*/
$matches[1][$key] = '[gallery ids="'. implode(',', $match_ids[1]) .'"]';
$updated = true;
}
}
if ($updated) {
$content = str_replace($matches[0], $matches[1], $content);
}
}
return $content;
}, 9);
}