43 lines
941 B
PHP
43 lines
941 B
PHP
<?php
|
|
|
|
class Blocksy_WP_Block_Parser extends WP_Block_Parser {
|
|
function parse($document) {
|
|
$result = parent::parse($document);
|
|
|
|
$current_index = 0;
|
|
$current_heading_index = 0;
|
|
|
|
foreach ($result as $index => $first_level_block) {
|
|
$result[$index]['firstLevelBlock'] = true;
|
|
|
|
if (
|
|
! empty(trim($first_level_block['innerHTML']))
|
|
&&
|
|
isset($first_level_block['blockName'])
|
|
&&
|
|
$first_level_block['blockName']
|
|
) {
|
|
$result[$index]['firstLevelBlockIndex'] = $current_index++;
|
|
|
|
if (
|
|
strpos($first_level_block['blockName'], 'heading') !== false
|
|
||
|
|
strpos($first_level_block['blockName'], 'headline') !== false
|
|
||
|
|
in_array(
|
|
substr(trim($first_level_block['innerHTML']), 0, 3),
|
|
[
|
|
'<h1', '<h2', '<h3',
|
|
'<h4', '<h5', '<h6'
|
|
]
|
|
)
|
|
) {
|
|
$result[$index]['firstLevelHeadingIndex'] = $current_heading_index++;
|
|
}
|
|
}
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
}
|