Jump to content

hreflang Prestashop 1.7


MD85

Recommended Posts

Hola, uso Prestashop 1.7.3.3, y no incluye en el head: {block name='head_hreflang'}.

¿Dónde lo debería incluir? ¿Sería correcto?

<link rel="alternate" href="https://www.mitienda.com/es/" hreflang="es">

<link rel="alternate" href="https://www.mitienda.com/en/" hreflang="en">

 

Gracias.

 

Link to comment
Share on other sites

Ver /themes/your_theme/templates/_partials/head.tpl

El bloque head_seo en 1.7.6.0 se ve así:

{block name='head_seo'}
  <title>{block name='head_seo_title'}{$page.meta.title}{/block}</title>
  <meta name="description" content="{block name='head_seo_description'}{$page.meta.description}{/block}">
  <meta name="keywords" content="{block name='head_seo_keywords'}{$page.meta.keywords}{/block}">
  {if $page.meta.robots !== 'index'}
    <meta name="robots" content="{$page.meta.robots}">
  {/if}
  {if $page.canonical}
    <link rel="canonical" href="{$page.canonical}">
  {/if}
  {block name='head_hreflang'}
      {foreach from=$urls.alternative_langs item=pageUrl key=code}
            <link rel="alternate" href="{$pageUrl}" hreflang="{$code}">
      {/foreach}
  {/block}
{/block}

 

Link to comment
Share on other sites

On 11/25/2019 at 11:50 AM, tuk66 said:

Ver /themes/your_theme/templates/_partials/head.tpl

El bloque head_seo en 1.7.6.0 se ve así:


{block name='head_seo'}
  <title>{block name='head_seo_title'}{$page.meta.title}{/block}</title>
  <meta name="description" content="{block name='head_seo_description'}{$page.meta.description}{/block}">
  <meta name="keywords" content="{block name='head_seo_keywords'}{$page.meta.keywords}{/block}">
  {if $page.meta.robots !== 'index'}
    <meta name="robots" content="{$page.meta.robots}">
  {/if}
  {if $page.canonical}
    <link rel="canonical" href="{$page.canonical}">
  {/if}
  {block name='head_hreflang'}
      {foreach from=$urls.alternative_langs item=pageUrl key=code}
            <link rel="alternate" href="{$pageUrl}" hreflang="{$code}">
      {/foreach}
  {/block}
{/block}

 

Gracias, pero incluyo la parte "block name='head_hreflang'" y no hace nada. 

A ver si alguien mas me puede ayudar.

Gracias.

Link to comment
Share on other sites

Hola @MD85

¿Limpiaste caché después de añadir las líneas de código?
¿Revisaste el código fuente en tu navegador con botón derecho del ratón --< ver código fuente?
¿Estás modificando un parent theme que dispone de child theme?

Comprueba estas cosas y nos cuentas.
Saludos.

  • Like 1
Link to comment
Share on other sites

On 11/27/2019 at 7:48 AM, Luisejo said:

Hola @MD85

¿Limpiaste caché después de añadir las líneas de código?
¿Revisaste el código fuente en tu navegador con botón derecho del ratón --< ver código fuente?
¿Estás modificando un parent theme que dispone de child theme?

Comprueba estas cosas y nos cuentas.
Saludos.

Buenos días,

Es el tema por defecto de Prestashop 1.7.3.3. He borrado la cache y reiniciado el servidor PHP. He inspeccionado el código como indicas y no aparece nada con "hreflang".

He añadido esta parte, el resto está todo igual:

{block name='head_hreflang'} {foreach from=$urls.alternative_langs item=pageUrl key=code} <link rel="alternate" href="{$pageUrl}" hreflang="{$code}"> {/foreach} {/block}

Gracias.

Link to comment
Share on other sites

Tengo un modulo a la venta que añade este código en el head.tpl

Si lo usas debes limpiar todos los ficheros tpl de la plantilla donde indiquen algo de hreflang y canonical

{if $page.page_name == 'category'}
	<link rel="canonical" href="{$link->getCategoryLink($smarty.get.id_category, null, $id_lang,null,null )}" />    
	{if $langs|@count > 1}
		{foreach $langs as $lang}
			<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getCategoryLink($smarty.get.id_category, null, $lang.id_lang,null,null )}" />
		{/foreach}
	{else}
		<link rel="alternate" hreflang="{$lang_iso}" href="{$link->getCategoryLink($smarty.get.id_category, null, $this->context->language->id,null,null )}" />
	{/if}


	{if $start!=$stop}
		{if $p != 1 && $p_previous != 1}{assign var='p_previous' value=$p-1}
			<link rel="prev" href="{$link->getCategoryLink($smarty.get.id_category, null, $id_lang,null,null )}{$link->goPage($requestPage, $p_previous)}" />
		{/if}
		{if $pages_nb > 1 AND $p != $pages_nb}{assign var='p_next' value=$p+1}
			<link rel="next" href="{$link->getCategoryLink($smarty.get.id_category, null, $id_lang,null,null )}{$link->goPage($requestPage, $p_next)}" />
		{/if}

	{/if}
{/if}


{if $page.page_name == 'product'}    
<link rel="canonical" href="{$link->getProductLink($smarty.get.id_product, null, null, null, $id_lang, null, 0, false)}" />    
	{if $langs|@count > 1}
	{foreach $langs as $lang}
		<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getProductLink($smarty.get.id_product, null, null, null, $lang.id_lang, null, 0, false)}" />
	{/foreach}
	{else}
		<link rel="alternate" hreflang="{$lang_iso}" href="{$link->getProductLink($smarty.get.id_product, null, null, null, $this->context->language->id, null, 0, false)}" />
	{/if} 

{/if}



{if $page.page_name == 'cms' && $smarty.get.id_cms > 0}
	<link rel="canonical" href="{$link->getCMSLink($smarty.get.id_cms, null, false, $id_lang)}" />
	{if $langs|@count > 1}
		{foreach $langs as $lang}
			<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getCMSLink($smarty.get.id_cms, null, false, $lang.id_lang)}" />
		{/foreach}
	{else}
		<link rel="alternate" hreflang="{$lang_iso}" href="{$link->getCMSLink($smarty.get.id_cms, null, false, $this->context->language->id)}" />
	{/if}
{/if}

{if $page.page_name == 'manufacturer' && $smarty.get.id_manufacturer > 0}
	<link rel="canonical" href="{$link->getManufacturerLink($smarty.get.id_manufacturer, null, $id_lang)}" />    
	{if $langs|@count > 1}
	{foreach $langs as $lang}
	<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getManufacturerLink($smarty.get.id_manufacturer, null, $lang.id_lang)}" />
	{/foreach}
	{else}
	<link rel="alternate" hreflang="{$lang_iso}" href="{$link->getManufacturerLink($smarty.get.id_manufacturer, null, $this->context->language->id)}" />
	{/if}
{/if}

{if $page.page_name == 'manufacturer' && !isset($smarty.get.id_manufacturer)}
<link rel="canonical" href="{$link->getPageLink('manufacturer', 'true', $id_lang)}" />    
	{if $langs|@count > 1}

	{foreach $langs as $lang}
	<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getPageLink('manufacturer', 'true', $lang.id_lang)}" />
	{/foreach}
	{else}
	<link rel="alternate" hreflang="{$lang_iso}" href="{$link->getPageLink('manufacturer', 'true', $this->context->language->id)}" />
	{/if}
{/if}

{if $page.page_name == 'index'}
<link rel="canonical" href="{$link->getPageLink('index', 'true', $id_lang)}" />   
 
{if $langs|@count > 1}
	{foreach $langs as $lang}
		<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getPageLink('index', 'true', $lang.id_lang)}" />
	{/foreach}
	{else}
	<link rel="alternate" hreflang="{$lang_iso}" href="{$link->getPageLink('index', 'true', $this->context->language->id)}" />
{/if}
	
{/if}

 

Link to comment
Share on other sites

  • 2 months later...
On 11/25/2019 at 11:50 AM, tuk66 said:

Ver /themes/your_theme/templates/_partials/head.tpl

El bloque head_seo en 1.7.6.0 se ve así:


{block name='head_seo'}
  <title>{block name='head_seo_title'}{$page.meta.title}{/block}</title>
  <meta name="description" content="{block name='head_seo_description'}{$page.meta.description}{/block}">
  <meta name="keywords" content="{block name='head_seo_keywords'}{$page.meta.keywords}{/block}">
  {if $page.meta.robots !== 'index'}
    <meta name="robots" content="{$page.meta.robots}">
  {/if}
  {if $page.canonical}
    <link rel="canonical" href="{$page.canonical}">
  {/if}
  {block name='head_hreflang'}
      {foreach from=$urls.alternative_langs item=pageUrl key=code}
            <link rel="alternate" href="{$pageUrl}" hreflang="{$code}">
      {/foreach}
  {/block}
{/block}

 

Hola, 

Como os comentaba añadiendo el código {block name='head_hreflang'} no aparece nada en mi web. Es raro que no me apareciera dicho código, el cual anteriormente no se ha modificado. ¿Puede ser que tenga que añadir algún otro código a la web para que este funcione? ¿De qué archivo coge $pageUrl y $code para revisarlo?

Espero que me podáis ayudar.

Muchas gracias

Link to comment
Share on other sites

¿Alguien que me pueda ayudar? No sé si es por la versión de Prestashop o por qué pero en el demo actual de Prestashop 1.7 si aparece "hreflang". 

Espero que me podáis ayudar.

Gracias.

Link to comment
Share on other sites

On 12/4/2019 at 8:47 PM, gusman126 said:

Tengo un modulo a la venta que añade este código en el head.tpl

Si lo usas debes limpiar todos los ficheros tpl de la plantilla donde indiquen algo de hreflang y canonical


{if $page.page_name == 'category'}
	<link rel="canonical" href="{$link->getCategoryLink($smarty.get.id_category, null, $id_lang,null,null )}" />    
	{if $langs|@count > 1}
		{foreach $langs as $lang}
			<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getCategoryLink($smarty.get.id_category, null, $lang.id_lang,null,null )}" />
		{/foreach}
	{else}
		<link rel="alternate" hreflang="{$lang_iso}" href="{$link->getCategoryLink($smarty.get.id_category, null, $this->context->language->id,null,null )}" />
	{/if}


	{if $start!=$stop}
		{if $p != 1 && $p_previous != 1}{assign var='p_previous' value=$p-1}
			<link rel="prev" href="{$link->getCategoryLink($smarty.get.id_category, null, $id_lang,null,null )}{$link->goPage($requestPage, $p_previous)}" />
		{/if}
		{if $pages_nb > 1 AND $p != $pages_nb}{assign var='p_next' value=$p+1}
			<link rel="next" href="{$link->getCategoryLink($smarty.get.id_category, null, $id_lang,null,null )}{$link->goPage($requestPage, $p_next)}" />
		{/if}

	{/if}
{/if}


{if $page.page_name == 'product'}    
<link rel="canonical" href="{$link->getProductLink($smarty.get.id_product, null, null, null, $id_lang, null, 0, false)}" />    
	{if $langs|@count > 1}
	{foreach $langs as $lang}
		<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getProductLink($smarty.get.id_product, null, null, null, $lang.id_lang, null, 0, false)}" />
	{/foreach}
	{else}
		<link rel="alternate" hreflang="{$lang_iso}" href="{$link->getProductLink($smarty.get.id_product, null, null, null, $this->context->language->id, null, 0, false)}" />
	{/if} 

{/if}



{if $page.page_name == 'cms' && $smarty.get.id_cms > 0}
	<link rel="canonical" href="{$link->getCMSLink($smarty.get.id_cms, null, false, $id_lang)}" />
	{if $langs|@count > 1}
		{foreach $langs as $lang}
			<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getCMSLink($smarty.get.id_cms, null, false, $lang.id_lang)}" />
		{/foreach}
	{else}
		<link rel="alternate" hreflang="{$lang_iso}" href="{$link->getCMSLink($smarty.get.id_cms, null, false, $this->context->language->id)}" />
	{/if}
{/if}

{if $page.page_name == 'manufacturer' && $smarty.get.id_manufacturer > 0}
	<link rel="canonical" href="{$link->getManufacturerLink($smarty.get.id_manufacturer, null, $id_lang)}" />    
	{if $langs|@count > 1}
	{foreach $langs as $lang}
	<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getManufacturerLink($smarty.get.id_manufacturer, null, $lang.id_lang)}" />
	{/foreach}
	{else}
	<link rel="alternate" hreflang="{$lang_iso}" href="{$link->getManufacturerLink($smarty.get.id_manufacturer, null, $this->context->language->id)}" />
	{/if}
{/if}

{if $page.page_name == 'manufacturer' && !isset($smarty.get.id_manufacturer)}
<link rel="canonical" href="{$link->getPageLink('manufacturer', 'true', $id_lang)}" />    
	{if $langs|@count > 1}

	{foreach $langs as $lang}
	<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getPageLink('manufacturer', 'true', $lang.id_lang)}" />
	{/foreach}
	{else}
	<link rel="alternate" hreflang="{$lang_iso}" href="{$link->getPageLink('manufacturer', 'true', $this->context->language->id)}" />
	{/if}
{/if}

{if $page.page_name == 'index'}
<link rel="canonical" href="{$link->getPageLink('index', 'true', $id_lang)}" />   
 
{if $langs|@count > 1}
	{foreach $langs as $lang}
		<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getPageLink('index', 'true', $lang.id_lang)}" />
	{/foreach}
	{else}
	<link rel="alternate" hreflang="{$lang_iso}" href="{$link->getPageLink('index', 'true', $this->context->language->id)}" />
{/if}
	
{/if}

 

Hola, 

He añadido dicho código y solamente aparece www.miweb.com/es hreflang="es", pero no aparece www.miweb.com/en hreflang="en". 

¿Me podría ayudar?

Gracias.

Edited by MD85 (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...