Adressen ausgeben mit ACF

Der Artikel besteht aus 469 Wörtern. Geschätzte Lesezeit: 01:52 Minuten

In meinem Regionalmagazin erhalte ich viele Pressemitteilungen oder Informationen von verschiedenen Firmen oder Institutionen bzw. Organisationen.

Um auf der einen Seite dem Besucher, auf der anderen aber auch den Suchmaschinen nähere Informationen darüber zu geben, woher die Informationen stammen, wollte ich die Kontaktdaten bzw. Adressen im Artikel und Quelltext angeben.

Da ich schon die Geo-Koordinaten zu den einzelnen Artikeln ausgeben lasse, habe ich mir überlegt, das dies auch mit Advanced Custom Fields (ACF) möglich sein muss. Also fing ich an zu basteln.

Heraus gekommen ist dabei folgendes Ergebnis:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//Firmendetails
/Firmendetails
function Firmendetails() {
 
$company = get_field('firma');
 
$company = explode('_', $company);
 
If ($company[0] != 'keine') {		
	echo '<strong>Kontaktdaten:</strong>';
	echo "<br />". $company[0];
	echo "<br />". $company[1];
 
	echo "<br />". $company[2] .' ' . $company[3];
	echo "<br />". $company[4];
	if ($company[5] != '-') {
	echo "<br />" . '<a href="http://'. $company[5] . '">' . $company[5] . '</a><br /><br />';
	}
	else {
		echo "<br />" .  $company[5] . '<br /><br />';
	}
	}
}

Um die Angabe zu erhalten, ist ein klein bisschen Vorarbeit in ACF notwendig.

Ihr müsst als erstes eine neue Feld-Gruppe erstellen. Bei mir heißt sie Organisation. Auf der Seite 'Felder-Gruppen bearbeiten' habe ich die Gruppe 'Firma' erstellt.

Die einzige Regel, die ich hier erstellt habe ist Artikel-Typ ist gleich Post. Die Bezeichnung ist gleich dem Name, also Firma.

Als Feldtyp habe ich 'Auswahlmenü' gewählt. Ob ihr das Feld als erforderlich markiert müsst ihr entscheiden. Ich habe hier ja markiert.

Als nächstes kommen dann die einzelnen Daten zu der Firma oder der Organisation. Dabei schreibt ihr alle Daten in eine Zeile. Dabei müsst ihr Euch für ein Trennzeichen entscheiden, das in den Daten nicht vorkommt. Da bei Kontaktdaten Leerzeichen vorhanden sind, z. B. das /- (bei der Telefonnummer) wie auch das Minus-Zeichen (z. B. bei Straßennamen) enthalten ist, fallen diese Zeichen schon einmal aus.

Bei mir ist es der Unterstrich.

Dieses Trennzeichen müsst ihr im Code in Zeile 7 einfügen

Die Eingabe sieht also wie folgt aus:

Name_Straße_PLZ_Ort_Telefon_Webseiten-Url

Das speichert ihr dann.

Den oben gezeigten Code gebt ihr in die functions.php ein. In die Datei für die Ausgabe der einzelnen Posts (single.php) kommt dann in den Head-Bereich folgender php-Befehl:

if (function_exists('Firmendetails')) { Firmendetails(); }

Für die Suchmaschinen habe ich eine ähnliche Funktion erstellt. Die sieht so aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function Firmenmeta() {
 
	$company = get_field('firma');
	$company = explode('_', $company);
 
	If ($company[0] !== 'keine') {		
 
	echo '<div itemscope itemtype="http://schema.org/Organization">';		
	echo "\n". '<meta name="name" itemprop="name" content="'. $company[0] .'" ><br />';
	echo '<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">';
	echo "\n". '<meta name="streetAdress" itemprop="streetAdress" content="'. $company[1] . '" />';
	echo "\n". '<meta name="postalCode" itemprop="postalCode" content="'. $company[2] . '" />';
	echo "\n". '<meta name="adressLocality" itemprop=="adressLocality" content="'. $company[3] . '" /></div>';
	echo "\n". '<meta name="telephone" itemprop=="telephone" content="'. $company[4] . '" />';
	echo "\n". '<meta name="url" itemprop="url" content="'. $company[5] . '" />';
	echo "\n". '<meta name="geo.position" itemprop="geo.position" content="'. $company[6] . '" />';
	echo "\n". '<meta name="IBCM" itemprop="IBCM" content="'. $company[7] . '" /></div>';
	echo "\n";
	}
}

Hier werden die Daten einfach nur im Queltext ausgegeben.

Der Befehl für die Ausgabe in der header.php heißt hier

if (function_exists('Firmenmeta')) { Firmenmeta(); }

Klar, ist doppelt gemoppelt, eigentlich. Aber ich weiß noch nicht, wie ich das ohne zweite Funktion ausgeben lassen kann. Zumal die Geo-Daten für den normalen Besucher ja uninteressant sind.

Marcus
Über Marcus 702 Artikel
Ich freue mich über Deinen Besuch auf meinem Blog! Wenn Dir der Artikel gefallen hat, teile ihn doch mit anderen und hinterlasse Deine Meinung. Mehr über mich gibt es hier zu lesen

Hinterlasse jetzt einen Kommentar

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*


CommentLuv - verlinke einen deiner Blog-Artikel