The links added to the x-btn type of elements do not have an option to ad the nofollow code to them - I don’t particularly want to add JS to the pages as I want the html code to be hardcoded. There is a past post https://theme.co/apex/forums/topic/make-rows-nofollow/#post-122416 and I want to know if this is still a valid code to put in my functions.php file and if i need to past the entire code base. I’m using the child theme
Hey there,
I’ve just tested Zeshan’s code from that post and this version is still working with the latest version:
function x_shortcode_button2( $atts, $content = null ) {
extract( shortcode_atts( array(
'id' => '',
'class' => '',
'style' => '',
'type' => '',
'shape' => '',
'size' => '',
'float' => '',
'block' => '',
'circle' => '',
'icon_only' => '',
'href' => '',
'title' => '',
'target' => '',
'info' => '',
'info_place' => '',
'info_trigger' => '',
'info_content' => '',
'lightbox_thumb' => '',
'lightbox_video' => '',
'lightbox_caption' => ''
), $atts, 'x_button' ) );
$id = ( $id != '' ) ? 'id="' . esc_attr( $id ) . '"' : '';
$class = ( $class != '' ) ? ' ' . esc_attr( $class ) : '';
$style = ( $style != '' ) ? 'style="' . $style . '"' : '';
$type = ( $type != '' ) ? ' x-btn-' . $type : '';
$shape = ( $shape != '' ) ? ' x-btn-' . $shape : '';
$size = ( $size != '' ) ? ' x-btn-' . $size : '';
switch ( $float ) {
case 'left' :
$float = ' alignleft';
break;
case 'right' :
$float = ' alignright';
break;
default :
$float = '';
}
$block = ( $block == 'true' ) ? ' x-btn-block' : '';
$icon_only = ( $icon_only == 'true' ) ? ' x-btn-icon-only' : '';
$href = ( $href != '' ) ? $href : '#';
$title = ( $title != '' ) ? 'title="' . $title . '"' : '';
$target = ( $target == 'blank' ) ? 'target="_blank"' : '';
$lightbox_thumb = ( $lightbox_thumb != '' ) ? $lightbox_thumb : '';
$lightbox_video = ( $lightbox_video == 'true' ) ? ', width: 1080, height: 608' : '';
$lightbox_caption = ( $lightbox_caption != '' ) ? 'data-caption="' . $lightbox_caption . '"' : '';
$tooltip_attr = ( $info != '' ) ? cs_generate_data_attributes_extra( $info, $info_trigger, $info_place, '', $info_content ) : '';
if ( is_numeric( $lightbox_thumb ) ) {
$lightbox_thumb_info = wp_get_attachment_image_src( $lightbox_thumb, 'full' );
$lightbox_thumb = $lightbox_thumb_info[0];
}
if ( $lightbox_video != '' ) {
$lightbox_options = "data-options=\"thumbnail: '" . $lightbox_thumb . "'{$lightbox_video}\"";
} else {
$lightbox_options = "data-options=\"thumbnail: '" . $lightbox_thumb . "'\"";
}
if ( $circle == 'true' ) {
$output = "<div {$id} class=\"x-btn-circle-wrap{$size}{$block}{$float}\" {$style}><a rel=\"nofollow\" class=\"x-btn{$class}{$type}{$shape}{$size}{$block}{$icon_only}\" href=\"{$href}\" {$title} {$target} {$tooltip_attr} {$lightbox_caption} {$lightbox_options}>" . do_shortcode( $content ) . "</a></div>";
} else {
$output = "<a {$id} rel=\"nofollow\" class=\"x-btn{$class}{$type}{$shape}{$size}{$block}{$float}{$icon_only}\" {$style} href=\"{$href}\" {$title} {$target} {$tooltip_attr} {$lightbox_caption} {$lightbox_options}>" . do_shortcode( $content ) . "</a>";
}
return $output;
}
add_filter('init', function() {
remove_shortcode( 'x_button' );
add_shortcode( 'x_button', 'x_shortcode_button2' );
});
Fantastic, for anyone else - just delete the cache after updating the PHP file and it should work!
Hey,
You are welcome 