Marcus
Mitglied seit: 27.01.2011

Themenersteller
Guru (223 Beiträge)

Ausgabe eines benutzerdefinierten Feldes

04.10.2015, 13:43 Uhr    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
Mitglied seit: 08.05.2010

Foren Moderator
Evil Genius
Content Halbgott (967 Beiträge)
04.10.2015, 14:48 Uhr

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
Mitglied seit: 27.01.2011

Guru (223 Beiträge)
04.10.2015, 21:52 Uhr

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
Mitglied seit: 05.10.2014

Beginner (23 Beiträge)
04.10.2015, 22:00 Uhr

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
Mitglied seit: 27.01.2011

Guru (223 Beiträge)
04.10.2015, 22:13 Uhr

Hallo tobi!

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

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
Mitglied seit: 08.05.2010

Foren Moderator
Evil Genius
Content Halbgott (967 Beiträge)
04.10.2015, 23:34 Uhr

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
Mitglied seit: 27.01.2011

Guru (223 Beiträge)
05.10.2015, 10:18 Uhr

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
Mitglied seit: 08.05.2010

Foren Moderator
Evil Genius
Content Halbgott (967 Beiträge)
05.10.2015, 13:06 Uhr

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
Mitglied seit: 27.01.2011

Guru (223 Beiträge)
05.10.2015, 20:52 Uhr

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
Mitglied seit: 08.05.2010

Foren Moderator
Evil Genius
Content Halbgott (967 Beiträge)
05.10.2015, 22:39 Uhr

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
Mitglied seit: 27.01.2011

Guru (223 Beiträge)
06.10.2015, 17:27 Uhr

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


Neuen Beitrag erstellen

Um einen Beitrag zu erstellen, müssen Sie eingeloggt sein. Bitte melden Sie sich an.
EinloggenRegistrieren



« zurück zu: Wordpress

Das Seitenreport Forum hat aktuell 4134 Themen und 36063 Beiträge.
Insgesamt sind 47922 Mitglieder registriert.