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

reformat-blocks.php 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. function get_rearrange_blocks($blocks) {
  3. $parsed_blocks = array();
  4. $i = 0;
  5. foreach( $blocks as $block ) {
  6. // Don't include whole galleries
  7. if (sizeof($block[innerBlocks]) < 1 && $block[innerHTML] !== "\n\n") {
  8. array_push($parsed_blocks, [$block]);
  9. } elseif ($block[innerHTML] === "\n\n") {
  10. // Don't do anything!
  11. } else {
  12. array_push($parsed_blocks, $block[innerBlocks]);
  13. }
  14. }
  15. return $parsed_blocks;
  16. }
  17. function get_ids_from_gallery_block($blocks){
  18. $parsed_blocks = array();
  19. foreach ($blocks as $block) {
  20. if($block[blockName] === "core/gallery") {
  21. array_push($parsed_blocks, $block[attrs]);
  22. } elseif ($block[blockName] === "core/image") {
  23. $ids = [];
  24. $galleryFormat = [];
  25. array_push($ids, $block[attrs][id]);
  26. $galleryFormat[ids] = $ids;
  27. $galleryFormat[columns] = 1;
  28. $galleryFormat[linkTo] = 'none';
  29. array_push($parsed_blocks, $galleryFormat);
  30. }
  31. }
  32. return $parsed_blocks;
  33. }
  34. function get_images_from_content($content) {
  35. $parse_images = array();
  36. $dom = new DOMDocument();
  37. @ $dom->loadHTML($content);
  38. $images = $dom->getElementsByTagName('img');
  39. foreach ($images as $image) {
  40. if($image->getAttribute('data-id')) {
  41. $parse_images[$image->getAttribute('data-id')] = $image->getAttribute('src');
  42. } else {
  43. $class_pieces = explode("-", $image->getAttribute('class'));
  44. $parse_images[end($class_pieces)] = $image->getAttribute('src');
  45. }
  46. }
  47. return $parse_images;
  48. }
  49. ?>