Zum Inhalt springen
ThreadWordpress

Ausgabe eines benutzerdefinierten Feldes

Kategorie
Wordpress
Antworten
17
Verfasst von: ehemaliges Mitglied Datum: 04.10.2015, 13:43 Uhr
Archiv-KommentarArchiviert, nicht priorisiertCMS & technische Umsetzung

Redaktionelle Einordnung

Diese archivierte Diskussion behandelt Ausgabe eines benutzerdefinierten Feldes aus Sicht der Rubrik WordPress.

CMS- und Technikfragen sind heute besonders dann relevant, wenn sie Indexierung, Rendering, interne Verlinkung oder Relaunch-Risiken beeinflussen.

Sinnvoll nutzbar bleibt der Thread vor allem als historischer Kontext, für typische Fragestellungen und zur Einordnung älterer Empfehlungen.

Einige im historischen Thread genannte Tools, Dienste oder externe Links könnten heute nicht mehr verfügbar oder inhaltlich überholt sein. Nutzen Sie sie bitte nur mit zusätzlicher Prüfung.

Startbeitrag

Archivierter Thread aus dem Seitenreport-Forum.

Zur Kategorie
ehemaliges Mitglied
Threadstart · Wordpress · 04.10.2015, 13:43 Uhr

Hallo zusammen!

Ist es möglich, den durch Komma getrennten Inhalt eines benutzerdefinierten Feldes auch getrennt ausgeben zu lassen

Beispiel für das Local Seo (Anregung von Matthes):

Name des Benutzerdefinierten Feldes ist Ort, die durch ein Komma getrennten Werte des Feldes sind Ortsname und Koordinaten.

Mir schwebt vor, das im Quelltext so auszugeben:




Die einfache Ausgabe des meta tag geo.placename funktioniert schon. Nur wie ich das mit den Koordinaten mache, da blicke ich momentan noch nicht so ganz durch

Antworten

10 Beiträge
matthes
Foren Moderator · Evil Genius · Content Halbgott (973 Beiträge) · 04.10.2015, 14:48 Uhr
Antwort

Prinzipiell mit explode(), das trennt einen String anhand eines Trennzeichens und gibt ein Array mit den einzelnen Teilen zurück.


Make Seitenreport great again!
gelöschter Benutzer · 04.10.2015, 21:52 Uhr
Antwort

Hallo zusammen!

Ich versuche es gerade mit folgendem Code:

function Placename() {
global $id, $post_meta_cache;

$koordinate = get_post_custom_values(\'Ort\');
if ($koordinate) {
$koordinate = explode(\',\', $koordinate);
$Ort = "$koordinate[0]";
$Grad = "$koordinate[1]";
foreach ($koordinaten as $Grade) {
echo \'""\';
}
}
}


bekomme dabei aber Fehlermeldungen ausgeworfen:

[html]content="
Warning: explode() expects parameter 2 to be string, array given
in /.../plugins/toolbox/modules/placename.php on line 20


Warning: Invalid argument supplied for foreach() in /...
/plugins/toolbox/modules/placename.php
on line 23
" />
<meta name="geo.position" content="
Warning: explode()
expects parameter 2 to be string, array given in
/.../plugins/toolbox/modules/placename.php
on line 20


Warning: Invalid argument supplied for foreach() in
/.../plugins/toolbox/modules/placename.php
on line 23
" />[/html]

gelöschter Benutzer · 04.10.2015, 22:00 Uhr
Antwort

Hallo,

du vermischt da so einige Variablen, versuch es mal mit:

$koordinate = \'Ort, Position\';

if (isset($koordinate))
{
$koordinaten = explode(\',\', $koordinate);
echo \'
\';
}


Gruß Tobi

gelöschter Benutzer · 04.10.2015, 22:13 Uhr
Antwort

Hallo tobi!

So ist das, wenn man man ein Noob in php ist

Im Benutzerdefinierten Feld Ort ist folgendes eingetragen: Ort, Geo-Koordinaten

Mit Deinem Code gibt er jetzt als Meta-Tag aus Ort und Position (jeweils als Wort), nicht aber z. B. Lüneburg und 53.246421;10.411518

Was muss ich da jetzt ändern?

Gruß und Danke

matthes
Foren Moderator · Evil Genius · Content Halbgott (973 Beiträge) · 04.10.2015, 23:34 Uhr
Antwort

Das gibt es aus, weil er die Variable $koordinate so gefüllt hat, sie seine Zeile 1.

Das musst Du natürlich wieder durch folgendes ersetzen:
$koordinate = get_post_custom_values(\'Ort\');


Make Seitenreport great again!
gelöschter Benutzer · 05.10.2015, 10:18 Uhr
Antwort

Hallo zusammen!

Da hätte ich auch selbst drauf kommen können.

Nun schaut mein Code so aus:
function Placename() {
global $id, $post_meta_cache;

$koordinate = get_post_custom_values(\'Ort\');

if (isset($koordinate))
{
$koordinaten = explode(\',\', $koordinate);
echo \'
\';
}
}


Die Ausgabe erfolgt mittels

<?php if (function_exists(\'Placename\')) { Placename(); } ?>


Und es erscheint folgende Fehlermeldung

Warning: explode() expects parameter 2 to be string, array given in /www/htdocs/w00e075c/salzsau/wp-content/plugins/toolbox/modules/placename.php on line 22 und betrifft diese Zeile:

$koordinaten = explode(\',\', $koordinate);

Wie kann ich das entsprechend umwandeln?

matthes
Foren Moderator · Evil Genius · Content Halbgott (973 Beiträge) · 05.10.2015, 13:06 Uhr
Antwort

codex.wordpress.org/Function_Reference/get_post_custom_values



get_post_custom_values gibt ein Array zurück.
Schau dir mal mit var_export() oder print_r() an, was $koordinate enthält.
Make Seitenreport great again!
gelöschter Benutzer · 05.10.2015, 20:52 Uhr
Antwort

Wenn ich
$b = array($Koordinate);
$results = print_r($b);


eingebe, erhalte ich Array ( [0] =>

matthes
Foren Moderator · Evil Genius · Content Halbgott (973 Beiträge) · 05.10.2015, 22:39 Uhr
Antwort

Von $b sprach niemand, woher hast du das?
Und $koordinate schreibst Du sonst klein. In dem Beispiel ist die Variable groß geschrieben.
$koordinate = get_post_custom_values(\'Ort\');
print_r($koordinate);


Make Seitenreport great again!
gelöschter Benutzer · 06.10.2015, 17:27 Uhr
Antwort

Hallo Matthes!

Dummerweise im Internet geklaut, wobei ich gestern abend eh nix mehr gerallt habe.

So, wenn ich jetzt im Benutzerdefinierten Feld nur Ort eingebe, erscheint die Fehlermeldung mit explodes und den erwarteten 2 Parametern. Die Ausgabe ist dann z. B. array ( 0 => \'Lüneburg,53.246421;10.411518\', )

Gebe ich im BF aber Ort, Position als Name an, gibt es keine Fehlermeldung und die Ausgabe ist NULL