Untitled
unknown
php
4 years ago
7.7 kB
11
Indexable
function acf_links_content($content){ $max_related = 6; //Quantidade de posts relacionados $aCadaXparagrafos = 10; //Intervalo de parágrafos (a cada X) $aCadaXH = 10; //Intervalo de H2 ou H3 (a cada X) if(has_tag('norelated')){ return $content; }else{ global $post; $id = $post->ID; # Get ACF array $posts = get_field('relacionadas'); if($posts == ""){ if(has_tag()){ $tags = get_the_tags(); $num_tags = count($tags); $tag = $tags[0]->slug; $the_query = new WP_Query( array( 'tag' => $tag, 'post__not_in' => array($id), ) ); $posts = $the_query->posts; $limit = count($posts); $marcaParagrafo = "</p>"; $content_orig = $content; $content = explode($marcaParagrafo, $content); if(count($content) < ($limit * $aCadaXparagrafos)){ $marcaParagrafo = "</h2>"; $content = explode($marcaParagrafo, $content_orig); $aCadaXparagrafosOrig = $aCadaXparagrafos; $aCadaXparagrafos = $aCadaXH; if(count($content) < $max_related){ $marcaParagrafo = "</h3>"; $content = explode($marcaParagrafo, $content_orig); $numTags = count($content); if($numTags < 2 || $numTags < $max_related){ $marcaParagrafo = "</p>"; $content = explode($marcaParagrafo, $content_orig); $aCadaXparagrafos = floor(($aCadaXparagrafosOrig-1)/2); } } } $new_content = ''; $numParagrafos = count($content); $acf_i = 0; $c = 0; for ($i = 0; $i < $numParagrafos; $i++) { if ($i % $aCadaXparagrafos == 0 && $i != 0) { $c++; ob_start(); if($c < $limit or $c == $limit) { if($id == $posts[$acf_i]->ID) { } else { setup_postdata($posts[$acf_i]); $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($posts[$acf_i]->ID), '218thumb' ); $url = $thumb['0']; ?> <?php if(is_single()) { ?> <div class="relacionado"> <a href="<?php the_permalink($posts[$acf_i]->ID); ?><?php if (is_amp_endpoint()) { echo "amp/"; } ?>" class="related-middle-content"><img src="<?php echo $url; ?>" class="img-responsive<?php if (is_amp_endpoint()) { echo " relacionado-amp"; } ?>"></a> <?php if (is_amp_endpoint()) { } else { ?><span>Veja também</span><?php } ?> <span><a href="<?php the_permalink($posts[$acf_i]->ID); ?><?php if (is_amp_endpoint()) { echo "amp/"; } ?>" class="related-middle-content"> <?php $title = get_the_title($posts[$acf_i]->ID); echo $title; ?></a></span> </div> <?php } else { ?> <p><span class="leia">Leia também:</span><a href="<?php the_permalink($posts[$acf_i]->ID); ?><?php if (is_amp_endpoint()) { echo "amp/"; } ?>"> <?php $title = get_the_title($posts[$acf_i]->ID); echo $title; ?> <?php echo $limite; ?></a> <?php echo $id; ?></p> <?php } } $acf_i++; } $new_content.= ob_get_contents(); ob_end_clean(); } $new_content .= $content[$i].$marcaParagrafo; } wp_reset_postdata(); return $new_content; }else{ return $content; } }else{ # Validating array to avoid warnings (Luiz) if (is_array($posts)){ $limit = count($posts); }else{ $limit = 0; } # $limit = count($posts); $marcaParagrafo = "</p>"; #$numParagrafos = count($content); $numParagrafos = is_array($content) ? count($content) : 1; $new_content = ''; $acf_i = 0; $c = 0; $content_orig = $content; $content = explode($marcaParagrafo, $content); if(count($content) < ($limit * $aCadaXparagrafos)){ $marcaParagrafo = "</h2>"; $content = explode($marcaParagrafo, $content_orig); $aCadaXparagrafosOrig = $aCadaXparagrafos; $aCadaXparagrafos = $aCadaXH; if(count($content) < $max_related){ $marcaParagrafo = "</h3>"; $content = explode($marcaParagrafo, $content_orig); $numTags = count($content); if($numTags < 2 || $numTags < $max_related){ $marcaParagrafo = "</p>"; $content = explode($marcaParagrafo, $content_orig); $aCadaXparagrafos = floor(($aCadaXparagrafosOrig-1)/2); } } } $new_content = ''; $numParagrafos = count($content); for ($i = 0; $i < $numParagrafos; $i++) { if ($i % $aCadaXparagrafos == 0 && $i != 0) { $c++; ob_start(); if($c < $limit or $c == $limit) { if($id == $posts[$acf_i]->ID) { } else { setup_postdata($posts[$acf_i]); $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($posts[$acf_i]->ID), '218thumb' ); $url = $thumb['0']; ?> <?php if(is_single()) { ?> <div class="relacionado"> <a href="<?php the_permalink($posts[$acf_i]->ID); ?><?php if (is_amp_endpoint()) { echo "amp/"; } ?>" class="related-middle-content"><img src="<?php echo $url; ?>" class="img-responsive<?php if (is_amp_endpoint()) { echo " relacionado-amp"; } ?>"></a> <?php if (is_amp_endpoint()) { } else { ?><span>Veja também</span><?php } ?> <span><a href="<?php the_permalink($posts[$acf_i]->ID); ?><?php if (is_amp_endpoint()) { echo "amp/"; } ?>" class="related-middle-content"> <?php $title = get_the_title($posts[$acf_i]->ID); echo $title; ?></a></span> </div> <?php } else { ?> <p><span class="leia">Leia também:</span><a href="<?php the_permalink($posts[$acf_i]->ID); ?><?php if (is_amp_endpoint()) { echo "amp/"; } ?>"> <?php $title = get_the_title($posts[$acf_i]->ID); echo $title; ?> <?php echo $limite; ?></a> <?php echo $id; ?></p> <?php } ?> <?php } $acf_i++; } $new_content.= ob_get_contents(); ob_end_clean(); } $new_content .= $content[$i].$marcaParagrafo; } return $new_content; } } } add_filter('the_content', 'acf_links_content', 10); function acf_filter_blockquote($content){ $re = '/(<blockquote\s*.*?>.*?)(<div class="[^"]*?relacionado[^"]*?">.*?<\/div>)(.*?<\/blockquote>)/ims'; $subst = '\\1\\3\\2'; return preg_replace($re, $subst, $content); } //add_filter('the_content', 'acf_filter_blockquote', 20);
Editor is loading...