WBCE Home | WBCE Hilfe | WBCE Addon Repository | Impressum | Datenschutz

WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 29.01.2017 23:38:09

colinax
Developer

hreflang korrekt einbinden

Hi Leute,

laut Hinweisen in Googles Webmaster Tool oder auch neuer Search Console wurde mit 1.1.2017 der Crawl Algorithmus aktualisiert.

Jetzt wird eine korrekte Angabe der hreflang Adressen erwünscht bzw. vorausgesetzt.

Aktueller Stand:

<link rel="alternate" hreflang="de" href="http://www.adresse.at/pages/de/" />
<link rel="alternate" hreflang="en" href="http://www.adresse.at/pages/en/" />
<link rel="alternate" hreflang="x-default" href="http://www.adresse.at/" />

Das Problem ist das die Adressen hard-coded im Template drinnen stehen, die sollten aber immer an die Seite angepasst angezeigt werden.


Kann man per php Befehl die von mod_multilingual erzeugten Adressen einbinden?

bzw.
1. Frage wie stelle ich das an?
2. Wie geht das, dass auf die Englische Seite verwiesen wird?

Offline

#2 30.01.2017 07:47:09

florian
Administrator

Re: hreflang korrekt einbinden

Vielleicht lässt sich das mit einer Abwandlung des canonical-Droplets lösen

Offline

#3 30.01.2017 11:29:26

stefanek
Developer

Re: hreflang korrekt einbinden

colinax wrote:

Kann man per php Befehl die von mod_multilingual erzeugten Adressen einbinden?

Mit der neuen Version des Language Switchers http://addons.wbce.org/pages/addons.php?do=item&item=3
müßte es gehen.
In der include.php findest Du eine zweite Funktion language_array()
Mit dieser wird Dir anstatt einer fertigen HTML-Struktur ein PHP Array zurück gegeben, den Du dann  entsprechend in eine HTML Struktur umwandeln kannst, wie Du es brauchst.

2. Wie geht das, dass auf die Englische Seite verwiesen wird?

Verwendest Du den mod_multilingual / Language Switcher überhaupt schon? Oder wie kann man die Frage verstehen?

Christian


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Online

#4 30.01.2017 17:26:51

colinax
Developer

Re: hreflang korrekt einbinden

stefanek wrote:

Mit der neuen Version des Language Switchers http://addons.wbce.org/pages/addons.php?do=item&item=3
müßte es gehen.
In der include.php findest Du eine zweite Funktion language_array()
Mit dieser wird Dir anstatt einer fertigen HTML-Struktur ein PHP Array zurück gegeben, den Du dann  entsprechend in eine HTML Struktur umwandeln kannst, wie Du es brauchst.

2. Wie geht das, dass auf die Englische Seite verwiesen wird?

Verwendest Du den mod_multilingual / Language Switcher überhaupt schon? Oder wie kann man die Frage verstehen?

Ja, ich verwende mod_multilingual 1.8.

florian wrote:

Vielleicht lässt sich das mit einer Abwandlung des canonical-Droplets lösen

im canonical-Droplet steht:

<link rel="canonical" href="'.WB_URL.PAGES_DIRECTORY.$page_link[0].PAGE_EXTENSION.'">

im classic Forum habe ich folgendes gefunden:

<link rel="canonical" class="wblink" href="[wblink<?php echo $page_id; ?>]"/>

Damit es auch korrekt auf dem EN Bereich funktioniert genügt eine  if else Abrage, leider gibt der WB-Link nur die Adresse der aktuellen Seite aus.



Mein(e) Frage / Problem ist wie kann ich dafür sorgen das die entsprechende Seite des EN Bereiches adressiert wird?

Am einfachsten wäre es ja wenn man bei Installierten mod_multilingual einfach nach "var current" und "var default" oder ähnliches fragen muss,

Last edited by colinax (30.01.2017 23:04:06)

Offline

#5 30.01.2017 17:58:56

stefanek
Developer

Re: hreflang korrekt einbinden

Ich sehe...

ja, mit der neuen Funktion sollte es gehen.

Füge diesen Code in den Head Bereich Deines Templates ein und schau mal, was passiert bzw. ob es das ist, was Du brauchst.

<head>
<?php 
if(function_exists('language_array')){
	$aLangLinks = language_array();
	foreach($aLangLinks as $key=>$link){
		if(LANGUAGE == $key) continue; // falls die gegenwärtige Sprache nicht verlinkt werden soll;
		echo '<link rel="alternate" hreflang="'.strtolower($key).'" href="'.$link['url'].'" />'.PHP_EOL;
	}
} 
?>

Christian

Last edited by stefanek (30.01.2017 18:00:58)


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Online

#6 30.01.2017 22:48:23

colinax
Developer

Re: hreflang korrekt einbinden

Hi stefanek, ja das ist das ich wollte. thumb_up thumb_up

<head>
<?php 
if(function_exists('language_array')){
	$aLangLinks = language_array();
	foreach($aLangLinks as $key=>$link){
		echo '<link rel="alternate" hreflang="'.strtolower($key).'" href="'.$link['url'].'" />'.PHP_EOL;
	}
} 
?>

Damit das korrekt eingebunden ist fehlt noch der x-default:

<link rel="alternate" hreflang="x-default" href="<?php echo WB_URL ; ?>" />

Danke für die schnelle Hilfe.

Offline

#7 30.01.2017 23:39:33

norhei
Developer

Re: hreflang korrekt einbinden

Hallöle , habe das hier gesehen und kam zu dem Schluss , das wird jetzt wohl in Zukunft öffter gebraucht.

Habe das gleich mal in die include.php vom Mod Multilingual eingebaut. Siehe Anhang.

function language_hreflang ( $output=true, $show_recent=true, $show_x_default=true){
    $out="\n";
    $end_tag=" /"; // Later used for prefered Render type HTML5 or XHTML ... 
    if ($show_x_default==true) {
        $out.="\t\t".'<link rel="alternate" hreflang="x-default" href="'.WB_URL.'" '.$end_tag.'>'.PHP_EOL;
    }
    
    // Lets walk the language array 
    $aLangLinks = language_array();
	foreach($aLangLinks as $key=>$link){
        // If recent Language schould not be linked
		if($show_recent!==true AND LANGUAGE == $key ) continue; 
		$out.="\t\t".'<link rel="alternate" hreflang="'.strtolower($key).'" href="'.$link['url'].'" '.$end_tag.'>'.PHP_EOL;
	}
    if ($output===true) echo $out;
    else                return $out;
}

Damit vereinfacht sich das ganze auf:


if(function_exists('language_hreflang')) language_hreflang ();

Einziges Problem , hab hier keine Multilanguage Testumgebung  und wenig Zeit .
Mag jemand  mal die include.php im Modul austauschen und Testen ?

Offline

Liked by:

colinax, stefanek

#8 30.01.2017 23:44:12

norhei
Developer

Re: hreflang korrekt einbinden

Wenn X-Default und show recent laut Gooogle immer Pflicht sind , könnte man die auch raus werfen .
Die Optionen meine ich , die wären dann immer an.

Offline

#9 30.01.2017 23:50:20

colinax
Developer

Re: hreflang korrekt einbinden

norhei wrote:

Einziges Problem , hab hier keine Multilanguage Testumgebung  und wenig Zeit .
Mag jemand  mal die include.php im Modul austauschen und Testen ?

Ja, das kann ich Morgen machen.

LG Colinax

Offline

#10 30.01.2017 23:52:24

norhei
Developer

Re: hreflang korrekt einbinden

Super !

Offline

#11 31.01.2017 00:07:00

stefanek
Developer

Re: hreflang korrekt einbinden

Gute Idee, Norbert.

Danke Colinax, dass Du die Google News überhaupt hier gebracht hast.
So sieht man, dass man im und als Team auf jeden Fall mehr mit- und erledigt bekommt, man sich ergänzt. wink

Christian


"All the knowledge I possess everyone else can acquire, but my heart is all my own."
Johann Wolfgang von Goethe

Online

Liked by:

colinax

#12 31.01.2017 13:15:50

colinax
Developer

Re: hreflang korrekt einbinden

colinax wrote:
norhei wrote:

Einziges Problem , hab hier keine Multilanguage Testumgebung  und wenig Zeit .
Mag jemand  mal die include.php im Modul austauschen und Testen ?

Ja, das kann ich Morgen machen.

Hab es jetzt in der Multilanguage Testumgebung getest, es funktioniert einwandfrei.

Offline

#13 31.01.2017 14:44:11

norhei
Developer

Re: hreflang korrekt einbinden

Super , dann bau ichs fest ein .

Offline

Liked by:

colinax

#14 31.01.2017 22:44:04

saxofon
Member

Re: hreflang korrekt einbinden

Bitte nochmal für die Normalsterblichen:
-Multilingual-Switcher auf die neueste Version geupdatet
-Dort die inlude.php ausgetauscht
-Die Zeile in der index.php des Templates eingefügt:
  <?php if(function_exists('language_hreflang')) {language_hreflang ();} ?>

Wenn ich jetzt den Quelltext der Seite anschaue, ist kein hreflang drin???

Offline

#15 31.01.2017 23:17:04

colinax
Developer

Re: hreflang korrekt einbinden

saxofon wrote:

Bitte nochmal für die Normalsterblichen:
-Multilingual-Switcher auf die neueste Version geupdatet
-Dort die inlude.php ausgetauscht
-Die Zeile in der index.php des Templates eingefügt:
  <?php if(function_exists('language_hreflang')) {language_hreflang ();} ?>
Wenn ich jetzt den Quelltext der Seite anschaue, ist kein hreflang drin???


Hi saxofon,

der Code sollte so aussehen:

  <?php if(function_exists('language_hreflang')) language_hreflang (); ?>

Bei dir sind die Klammeraffen {} zuviel.

Offline

#16 01.02.2017 10:39:08

saxofon
Member

Re: hreflang korrekt einbinden

Hallo Colinax,
leider keine Besserung, kein hreflang im Quellcode der Seite zu sehen.
Ich hab beim updaten des multilingual switchers die neue Version einfach drübergebügelt ohne die alte vorher zu entfernen. Das Modul hat Update-Erfolg gemeldet. Wenn ich Details zum Modul mache, steht aber:
Name: Multilingual Switcher 1.6.7
Version:     1.8.0
Scheint aber nur ein Schönheitsfehler zu sein.

Offline

#17 01.02.2017 18:21:19

colinax
Developer

Re: hreflang korrekt einbinden

Hmm da ist Irgendwas schief gegangen.


Bitte deinstalliere zuerst die installierte Mod Multilingual Version und installiere danach die neueste Version 1.9 von hier.


In der Version 1.9 ist language_hreflang Funktion bereits enthalten.

Edit: Link auf AOR aktualisiert

Last edited by colinax (01.02.2017 20:34:20)

Offline

#18 01.02.2017 19:54:17

norhei
Developer

Re: hreflang korrekt einbinden

Sorry , die 1.9 war noch nicht im AOR .

Offline

#19 01.02.2017 20:08:06

norhei
Developer

Re: hreflang korrekt einbinden

Neue Version im AOR jetzt :-)

Offline

Liked by:

colinax

#20 02.02.2017 10:48:08

saxofon
Member

Re: hreflang korrekt einbinden

Danke norhei, alles gemacht wie befohlen, aber kein hreflang.
Die Installation des Moduls hat funktioniert.
In der readme steht "Einfach mehrsprachen Support in den Einstellungen aktivieren". Wenn damit "pagecode" und "Sprache" in den Seiteneinstellungen gemeint ist, dann habe ich das richtig gesetzt.
Ich habe die Besonderheit, dass zwar der Menübaum exakt symmetrisch ist für die beiden Sprachen, es aber einige Unterseiten nur in Englisch gibt. Der deutsche Menüpunkt ist dann nur ein menu_link zur englischen Seite. Beispiel: Der deutsche "Kontakt" Menüpunkt leitet zur Englischen "Contacts" Seite um, es gibt also nur ein Kontaktformular. Könnte das der Grund sein warum es nicht funktioniert?

Last edited by saxofon (02.02.2017 10:50:06)

Offline

#21 02.02.2017 11:22:52

colinax
Developer

Re: hreflang korrekt einbinden

Hi Saxofon,

kannst du mir bitte CMS und FTP Zugangsdaten per PM senden, dann schau ich mir das nach der Arbeit an.

LG Colinax

Offline

#22 02.02.2017 22:40:49

colinax
Developer

Re: hreflang korrekt einbinden

Fehler wurden gefunden.

Einmal wurde der Code in den "Wenn nicht vorhanden" Abschnitt des simplepagehead Codes rein kopiert. Nach dem korrekten platzieren funktioniert die Seite nicht mehr da aufgrund falscher/fehlerhafter Rechte am Server die die Ausführung der Datei(en) verhindern/blockieren.

Offline

Board footer

Powered by FluxBB

up