//Show the all the Gutenberg jason based content
<?php
$blocks = parse_blocks($post->post_content);
foreach ($blocks as $block) {
print "<pre>".print_r($block,1)."</pre>";
}
?>
//Show the specific value of an ACF Gutenber block field
<?php
$blocks = parse_blocks($post->post_content);
foreach ($blocks as $block) {
if ($block['blockName'] == 'acf/primary-slide-block') {
//print_r($block['attrs']['data']);
$slide_effect = $block['attrs']['data']['slide_effects'];
echo '<li>'.$slide_effect.'</li>';
}
}
?>
//Second exmaple that creates slugs via sanitation.
<?php
$blocks = parse_blocks($post->post_content);
foreach ($blocks as $block) {
if ($block['blockName'] == 'acf/slide') {
//print_r($block['attrs']['data']);
$slide_name = $block['attrs']['data']['slide_name'];
$slide_slug = '' . sanitize_title( $slide_name ) . '';
echo '<li>'.'<a href="#'.$slide_slug.'">'.$slide_name.'</a>'.'</li>';
}
}
?>
// Parse with Image URL or Id either way it works the same.
<?php
$blocks = parse_blocks($post->post_content);
foreach ($blocks as $block) {
if ($block['blockName'] == 'acf/big-book')
{
$block_name = $block['attrs']['data']['block_id'];
$block_slug = '' . sanitize_title( $block_name ) . '';
$main_image = $block['attrs']['data']['main_image'];
$image_attributes = wp_get_attachment_image_src( $main_image, 'full' );
$title = $block['attrs']['data']['title'];
$sub_title = $block['attrs']['data']['sub_title'];
?>
<div class="slide" data-content="<?php echo $block_slug; ?>">
<div style="background-image: url(<?php echo $image_attributes[0]; ?>)" class="img-wrap"><img src="image_url_goes_here.png" alt="Camera"/></div>
<h2><?php echo $title; ?><span><?php echo $sub_title ?><?php echo $main_image ?></span></h2>
<button class="content-switch">Read more</button>
</div>
<?php }
}
?>
<?php
$blocks = parse_blocks($post->post_content);
foreach ($blocks as $block) {
if ($block['blockName'] == 'acf/presentation-slide')
{
$slide_name = $block['attrs']['data']['slide_name'];
$slide_slug = '' . sanitize_title( $slide_name ) . '';
//$slide_name = ['innerBlocks']['data']
?>
<li>
<a href="<?php echo $slide_slug; ?>"><?php echo $slide_name; ?></a>
<?php foreach($block['innerBlocks'] as $sub_slide) { ?>
<?php if(isset($sub_slide['attrs']['data']['slide_name'])) {
$sub_slide_title = $sub_slide['attrs']['data']['slide_name'];
$sub_slide_slug = '' . sanitize_title( $sub_slide_title ) . '';
?>
<li>
<a href="#<?php echo $sub_slide_slug; ?>"><?php echo $sub_slide_title; ?></a>
</li>
<?php } ?>
<?php }//end foreach ?>
<?php }
}
?>
/* Here I am parsing a block but I want to hide the first element.*/
<?php if( $use_sub_slides) :?>
<li>
<a href="#<?php echo $slide_slug; ?>"><?php echo $slide_name; ?></a>
<ol class="sub-nav">
<?php
$isFirst = true;
foreach($block['innerBlocks'] as $sub_slide) {
if ($isFirst) {
$isFirst = false;
continue;
}
?>
<?php if(isset($sub_slide['attrs']['data']['slide_name'])) {
$sub_slide_title = $sub_slide['attrs']['data']['slide_name'];
?>
<li><a href="#<?php echo $slide_slug; ?>"><?php echo $sub_slide_title; ?></a></li>
<?php } ?>
<?php }//end foreach ?>
<?php endif ?>
</ol>
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.