Og:url für CMS Seiten falsch

Liebe Entwickler,
ich fummel hier schon eine Weile und finde keine Lösung.

Wenn ich bei Facebook einen Share einer CMS Seite mache, wird immer die Startseite geshared und nicht die CMS Seite.
Dies liegt daran, dass der Meta Tag og:url auf meine Startseite zeigt.

Dies kann man sehr schön bei Facebook überprüfen:
https://developers.facebook.com/tools/debug/

Im Oxid Shop gibt es base.tpl


[{if $oViewConf->getFbAppId()}]
        <meta property="og:site_name" content="[{$oViewConf->getBaseDir()}]">
        <meta property="fb:app_id" content="[{$oViewConf->getFbAppId()}]">
        <meta property="og:title" content="[{ $_sMetaTitlePrefix }][{if $_sMetaTitlePrefix && $_sMetaTitle }] | [{/if}][{$_sMetaTitle|strip_tags}][{if $_sMetaTitleSuffix && ($_sMetaTitlePrefix || $_sMetaTitle) }] | [{/if}][{$_sMetaTitleSuffix}] [{if $_sMetaTitlePageSuffix }] | [{ $_sMetaTitlePageSuffix }] [{/if}]">
        [{if $oViewConf->getActiveClassName() == 'details' }]
            <meta property="og:type" content="product">
            <meta property="og:image" content="[{$oView->getActPicture()}]">
            <meta property="og:url" content="[{$oView->getCanonicalUrl()}]">
			
        [{else}]
            <meta property="og:type" content="website">
            <meta property="og:image" content="[{$oViewConf->getImageUrl('tuetenbeispiel.jpg')}]">
            <meta property="og:url" content="[{$oViewConf->getCurrentHomeDir()}]">
        [{/if}]
    [{/if}]

Hier wird bei allen Produktseite sehr schön die richtie CanonicalURL für og:url genommen. Aber bei CMS Seiten nur das HomeDir. Da möchte ich aber die URL zur CMS Seite haben.

Wir komme ich an diese URL ? (getCanonicalUrl ist null für CMS Seiten. :frowning: )

lieben Dank
Peter

Hallo Peter,

das hört sich für mich wie ein Bug an. Willst Du den selbst eintragen?
https://bugs.oxid-esales.com

Gruß

Ich habe einen Bug erstellt. https://bugs.oxid-esales.com/view.php?id=6217

Wäre aber sehr froh, wenn mir trotzdem jemand die Lösung geben könnte. :slight_smile:

So, Problem für mich gelöst:
In der base.tpl habe ich folgendes ergänzt:
<code>
[{if $oViewConf->getActiveClassName() == ‘details’ }]
<meta property=“og:type” content=“product”>

        &lt;meta property="og:image" content="[{$oView-&gt;getActPicture()}]"&gt;
        &lt;meta property="og:url" content="[{$oView-&gt;getCanonicalUrl()}]"&gt;
		
    [{elseif $oContent}]
        &lt;meta property="og:type" content="website"&gt;
        &lt;meta property="og:image" content="[{$oViewConf-&gt;getImageUrl('basket.png')}]"&gt;
        &lt;meta property="og:url" content="[{$oContent-&gt;getLink()}]"&gt;
    [{else}]
     &lt;meta property="og:type" content="website"&gt;
        &lt;meta property="og:image" content="[{$oViewConf-&gt;getImageUrl('basket.png')}]"&gt;
        &lt;meta property="og:url" content="[{$oViewConf-&gt;getCurrentHomeDir()}]"&gt;
    [{/if}]

<code>
Der ELSEIF zweig ist neu. Damit wird jetzt die richtige URL angezeigt für alle CMS Seiten. Die nicht CMSSeiten verweisen immer noch auf HOMEDIR (z.B: account, register, guestbook etc.)

1 Like

Dankesehr! :slight_smile: