David CHC

Corrigindo a mensagem: Os links não são rastreáveis ao utilizar o Elementor

Se você está utilizando o Elementor para criação das páginas, e utiliza o Widget de Sanfona ou Acordeão, e pediu para verificar no Google Pagespeed, verá que na parte de SEO ele irá mostrar uma mensagem: Os links não são rastreáveis.

Isso acontece porquê o Elementor utiliza um link sem o href. Para resolver essa questão você precisar fazer uma alteração na parte de renderização no Widget.

O Elementor possuir um filtro chamado elementor/widget/render_content e através dele que iremos manipular o valor para adicionar um href=”#” no link. Vamos para o código.

Se for utilizar o Widget Acordeão:

function add_href_accordion_widget_content( $widget_content, $widget ) {

	if ( 'accordion' == $widget->get_name() ) {
		  $widget_content = str_replace('tabindex="0"', ' href="#" tabindex="0"', $widget_content);
	}

	return $widget_content;

}
add_filter( 'elementor/widget/render_content', 'add_href_accordion_widget_content', 10, 2 );

Nesse código ele faz uma verificação de qual Widget está utilizando, no caso de Widget Acordeão, ali ele busca o valor tabindex=”0″ e substitui por href=”#” tabindex=”0″

Caso você utiliza o Widget de Sanfona:

function add_href_toggle_widget_content( $widget_content, $widget ) {

	if ( 'toggle' == $widget->get_name() ) {
		$widget_content = str_replace('tabindex="0"', ' href="#" tabindex="0"', $widget_content);
	}

	return $widget_content;

}
add_filter( 'elementor/widget/render_content', 'add_href_toggle_widget_content', 10, 2 );

Basicamente é a mesma coisa, só que verificando se o Widget é de sanfona.

Mas se você estiver utilizando os 2? Simples, basta utilizar os códigos juntos, certo? Sim, mas podemos otimizar isso, numa única função. Se reparar, ação é mesma se busca tabindex=”0″ e substitui por href=”#” tabindex=”0″. Vamos ao código, como ficaria:

function add_href_toggle_accordion_widget_content( $widget_content, $widget ) {
	
	$widgets_allowed = ['toggle', 'accordion'];


	if ( in_array( $widget->get_name(), $widgets_allowed) ) {
		$widget_content = str_replace('tabindex="0"', ' href="#" tabindex="0"', $widget_content);
	}

	return $widget_content;

}
add_filter( 'elementor/widget/render_content', 'add_href_toggle_accordion_widget_content', 10, 2 );

Agora criamos um array, que tem os widgets que queremos modificar, o Toggle e Accordion, e irá aplicar alteração caso o Widget seja um deles.

Agora só criar um plugin ou na functions.php do seu tema (espero que esteja utilizando tema filho; 😀 )

Você pode baixar o código no github:

https://github.com/davidchc/fix_toggle_accordion_widget_elementor

Depois baixar, basta acessar área administrativa do WordPress, ir em Plugins, e adicionar um novo plugin, e escolher o arquivo baixou.

Pronto, agora no Elementor, se quando utilizar o Widget Toggle ou Accordion ele irá incluir o href nos links.

Espero que tenha ajudado, e até a próxima.

Compartilhar a publicação

Trabalha com desenvolvimento web há 15 anos, atuou como programador líder do MX Cursos por mais de 8 anos.  Possui vasto conhecimento em PHP, Javascript, HTML5, CSS3,  GIT, MySQL

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Sobre

Trabalho  com desenvolvimento web há 17 anos, atuou como programador líder do MX Cursos por mais de 8 anos . Possui vasto conhecimento em PHP, Javascript, HTML5, CSS3,  GIT, MySQL, WordPress, WooCommerce

© 2023 – Todos direitos reservados