NEXT craftinamerica.org. Base setup for headless wordpress https://www.craftinamerica.org
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

reformat-blocks.php 1.8KB

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