Marcus
Avatar Marcus
Themenersteller
Guru (223 Beiträge)

Ausgabe eines benutzerdefinierten Feldes

am 04.10.2015, 13:43 Uhr eröffnete Marcus folgenden Thread
Wordpress    5962 mal gelesen    17 Antwort(en).

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


Das Regional-Magazin für Lüneburg und die Region:
salzsau-panorama.de

matthes
Avatar matthes
Foren Moderator
Evil Genius
Content Halbgott (973 Beiträge)
am 04.10.2015, 14:48 Uhr schrieb matthes

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


Make Seitenreport great again!

Marcus
Avatar Marcus
Guru (223 Beiträge)
am 04.10.2015, 21:52 Uhr schrieb Marcus

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]


Das Regional-Magazin für Lüneburg und die Region:
salzsau-panorama.de

tas2580
Avatar tas2580
Beginner (23 Beiträge)
am 04.10.2015, 22:00 Uhr schrieb tas2580

Hallo,

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

$koordinate = \'Ort, Position\';

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


Gruß Tobi


Mein Blog

Marcus
Avatar Marcus
Guru (223 Beiträge)
am 04.10.2015, 22:13 Uhr schrieb Marcus

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


Das Regional-Magazin für Lüneburg und die Region:
salzsau-panorama.de

matthes
Avatar matthes
Foren Moderator
Evil Genius
Content Halbgott (973 Beiträge)
am 04.10.2015, 23:34 Uhr schrieb matthes

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!

Marcus
Avatar Marcus
Guru (223 Beiträge)
am 05.10.2015, 10:18 Uhr schrieb Marcus

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?


Das Regional-Magazin für Lüneburg und die Region:
salzsau-panorama.de

matthes
Avatar matthes
Foren Moderator
Evil Genius
Content Halbgott (973 Beiträge)
am 05.10.2015, 13:06 Uhr schrieb matthes

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!

Marcus
Avatar Marcus
Guru (223 Beiträge)
am 05.10.2015, 20:52 Uhr schrieb Marcus

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


eingebe, erhalte ich Array ( [0] =>


Das Regional-Magazin für Lüneburg und die Region:
salzsau-panorama.de

matthes
Avatar matthes
Foren Moderator
Evil Genius
Content Halbgott (973 Beiträge)
am 05.10.2015, 22:39 Uhr schrieb matthes

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!

Marcus
Avatar Marcus
Guru (223 Beiträge)
am 06.10.2015, 17:27 Uhr schrieb Marcus

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


Das Regional-Magazin für Lüneburg und die Region:
salzsau-panorama.de



« zurück zu: Wordpress

Das Seitenreport Forum hat aktuell 5276 Themen und 36111 Beiträge.
Insgesamt sind 48364 Mitglieder registriert.