NEXT craftinamerica.org. Base setup for headless wordpress https://www.craftinamerica.org
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

reformat-blocks.php 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. function get_ids_from_gallery_block($blocks){
  3. $parsed_blocks = array();
  4. foreach ($blocks as $block) {
  5. if($block[blockName] === "core/gallery") {
  6. if(count($block[attrs][ids]) < 1) {
  7. $gallery_imgs_ids = [];
  8. foreach($block[innerBlocks] as $inner) {
  9. $inner_id = $inner[attrs][id];
  10. array_push($gallery_imgs_ids, $inner_id);
  11. }
  12. $block[attrs]['zzz'] = $gallery_imgs_ids;
  13. $block[attrs][ids] = $gallery_imgs_ids;
  14. }
  15. array_push($parsed_blocks, $block[attrs]);
  16. } elseif ($block[blockName] === "core/image") {
  17. $ids = [];
  18. $galleryFormat = [];
  19. array_push($ids, $block[attrs][id]);
  20. $galleryFormat[ids] = $ids;
  21. $galleryFormat[columns] = 1;
  22. $galleryFormat[linkTo] = 'none';
  23. array_push($parsed_blocks, $galleryFormat);
  24. }
  25. }
  26. return $parsed_blocks;
  27. }
  28. function get_images_from_content($content) {
  29. $parse_images = array();
  30. $dom = new DOMDocument();
  31. @ $dom->loadHTML($content);
  32. $images = $dom->getElementsByTagName('img');
  33. foreach ($images as $image) {
  34. if($image->getAttribute('data-id')) {
  35. $parse_images[$image->getAttribute('data-id')] = $image->getAttribute('src');
  36. } else {
  37. $class_pieces = explode("-", $image->getAttribute('class'));
  38. $parse_images[end($class_pieces)] = $image->getAttribute('src');
  39. }
  40. }
  41. return $parse_images;
  42. }
  43. ?>