Ach herrje,
ich hab ein Problem bei dem ich nach 3-tägiger Internetrecherche und intensivem ausprobieren immer noch nicht zu einer Lösung gekommen bin und nicht mal einen Ansatz gefunden habe.
Ich verstehe einfach nicht, warum das nicht so klappt, wie ich das will. Ich hoffe ihr könnt mir weiterhelfen.
In der functions.php von twentytwelve habe ich folgendes:
// function translate($token) {
// return $token;
// }
function maHinzufuegen() {
include 'personal.php';
foreach ($personal as $personalKey => $eigenschaft) {
foreach ($eigenschaft as $eigenschaftName => $eigenschaftWert) {
if ($eigenschaftName == 'lastname') {
$post = array(
'post_title' => $eigenschaftWert, //der Titel eines Beitrages wird den Nachnamen bekommen
'post_status' => 'publish', //der Beitrag ist hiermit öffentlich
'post_author' => 1, //die ID das Authors. In diesem Fall ist die 1 immer der Blogadmin
'post_type' => 'mitarbeiter'
);
// $newId = wp_insert_post($post, false);
// echo $eigenschaftWert;
} elseif ($eigenschaftName == 'firstname') {
$firstname = $eigenschaftWert; //sichern des Wertes für später
// echo $eigenschaftWert;
} elseif ($eigenschaftName == 'vita') {
foreach ($eigenschaftName as $lang => $lang_value) {
$vita = 'vita_' . $lang;
// add_post_meta($newId, $vita, $lang_value);
// echo $vita.'=>'.$lang_value;
}
}
elseif ($eigenschaftName == 'position') {
$file = 'DataTokens.xml';
$xml = simplexml_load_file($file);
// echo $eigenschaftWert.'<br />';
foreach ($xml->token as $value) {
echo $value['id'];
echo $eigenschaftWert;
echo $value;
if ($value['id'] == $eigenschaftWert) {
// add_post_meta($newId, $label, $value);
echo "value['id']= ". $value['id'] .'<br />';
echo 'person= '. $eigenschaftWert .'<br />';
echo 'value= '. $value .'<br />';
}
}
}
elseif ($newId) { //nur schreiben, wenn auch eine ID vorhanden ist
// add_post_meta($newId, $eigenschaftName, $eigenschaftWert);
// echo $eigenschaftWert;
}
} // Ende $persona-Schleife
// add_post_meta($newId, 'firstname', $firstname); // gesicherten Wert in die DB schreiben, bevor ein neuer Personalsatz geholt wird
}; //Ende Personalsatz-Schleife
}
$ma_hinzufuegen = maHinzufuegen();
//$ma_add = add_option('mitarbeiter_hinzufuegen',$ma_hinzufügen,'','no');
//
//if ($ma_add) {
// get_option('mitarbeiter_hinzufuegen');
//}
Alles anzeigen
Hierbei funktioniert nicht mal die echo-Ausgabe der $value, $value['id'], $eigenschaftWert Werte aus der xml-Datei.
Die Funktion translate brauche ich nur um einen Wert aus einem Array aus der personal.php auszulesen:
<?
$personal = array(
1 => array(
'firstname' => 'Lars Joachim',
'lastname' => 'Rose',
'position' => translate('DATA_PERSONAL_POSITION_334'),
'image' => 'Lars-Joachim-Rose.jpg',
'phone' => '0 72 21 / 35 01 -2 00',
'fax' => '0 72 21 / 35 01 -2 04',
'email' => 'lars.rose@klambt.de',
'vita' => array(
'de' => 'Vita-Lars-Joachim-Rose.pdf',
'en' => 'resume-Lars-Joachim-Rose.pdf',
)
),
2 => array(
'firstname' => 'Kay',
'lastname' => 'Labinsky',
'position' => translate('DATA_PERSONAL_POSITION_2'),
'image' => 'Kay-Labinsky.jpg',
'phone' => '0 72 21 / 35 01 -2 01',
'fax' => '0 72 21 / 35 01 -2 04',
'email' => 'kay.labinsky@klambt.de',
),
.
.
.
)
?>
Alles anzeigen
In dieser Datei wird in 'position' die Funktion aufgerufen, die nur den Inhalt (also 'DATA_PERSONAL_POSITION_blabla') zurückgibt. Dieser Wert wird mit dem Wert aus token['id'] in der Datei 'DATA_TOKENS.xml' verglichen, die dazu eingelesen wird:
<?xml version="1.0" encoding="UTF-8"?>
<tokens language="de">
<token id="DATA_PERSONAL_POSITION_1" type="input" module="PERSONAL" label="Position 1"><![CDATA[Verleger/in]]></token>
<token id="DATA_PERSONAL_POSITION_2" type="input" module="PERSONAL" label="Position 2"><![CDATA[Geschäftsführer Klambt-Verlag, Medienholding Klambt, G+J / Klambt-Style-Verlag, IN Verlag, OK! Verlag, Klambt-Trend-Verlag]]></token>
.
.
</tokens>
Im Endeffekt soll alles in die Datenbank eingelesen werden, aber solange nicht mal per echo das richtige ausgegeben wird, hat das keinen Sinn. Mein Problem: sobald ich die Funktion translate unkommentiere, zeigt sich statt der WordPress-Seite nur noch eine leere Seite und ich weiß nicht wieso. Vielleicht könnt ihr mir ja weiterhelfen. Das Auskommentierte in den letzten Zeilen meiner functions.php funktioniert auch nicht richtig, wenn also jemand einen Tipp zu add_option/get_option hat (damit nur beim ersten Seitenaufruf der ganze Kram in die DB geschrieben wird), wäre ich auch hier sehr Dankbar.
MfG
Karsten