• Gelöst worels

    (@worels)


    Hi

    Ich versuche die Übersichtsseite für meinen Custom-Seitentyp zu gestalten, aber es gelingt mir nicht, WP dazu zu bringen, die Werte der Benutzerdefinierten Felder anzuzeigen, obwohl es gelingt, die Spaltenüberschriften auszugeben.

    Ich habe in der functions.php die Custom-Felder definiert und in den Einzelseiten werden diese auch korrekt dargestellt:

    
     add_action("admin_init","cpt_workshop_meta_boxen");
     add_action('save_post','cpt_workshop_daten_speichern');
     
     function cpt_workshop_meta_boxen(){
    	add_meta_box("art-meta", "Workshopart","cpt_workshop_feld_art", "workshopseite","normal","default");
    	add_meta_box("datum-meta", "Datum","cpt_workshop_feld_datum", "workshopseite","normal","default");
    	add_meta_box("modul-meta", "Ort","cpt_workshop_feld_ort", "workshopseite","normal","default");
     }
     
     function cpt_workshop_feld_art(){
    	global $post;
    	$custom = get_post_custom($post->ID);
    	$art = $custom["art"][0];
    	echo '<input name="art" value="' . $art . '" />';
     }
      function cpt_workshop_feld_datum(){
    	global $post;
    	$custom = get_post_custom($post->ID);
    	$datum = $custom["datum"][0];
    	echo '<input name="datum" value="' . $datum . '" />';
     }
      function cpt_workshop_feld_ort(){
    	global $post;
    	$custom = get_post_custom($post->ID);
    	$ort = $custom["ort"][0];
    	echo '<input name="ort" value="' . $ort . '" />';
     }
     
       
     function cpt_workshop_daten_speichern (){
    	global $post;
    	update_post_meta($post->ID, "art", $_POST["art"]);
    	update_post_meta($post->ID, "datum", $_POST["datum"]);
    	update_post_meta($post->ID, "ort", $_POST["ort"]);
     }

    In der Übersichtsseite bekomme ich die Werte einfach nicht angezeigt. Der code dazu in der functions.php:

     add_filter("manage_edit-workshopseite_columns", 
       "cpt_workshopseite_spalten");
       add_action("manage_posts_custom_column",  
       "cpt_workshopseite_neue_spalte");
    
       function cpt_workshopseite_spalten($columns){
          $columns = array(
                     "cb" => "<input type=\"checkbox\" />",
                     "title" => "Workshoptitel",
    		 "datum" => "Datum",
                     "ort" => "Ort",
                     "date" => "Hinzugefügt"
          );
    	
          return $columns;
       }
    
       function cpt_workshopseite_neue_spalte($column){
          global $post;
          if ("datum" == $column) {
             $custom = get_post_custom();
             echo $custom["datum"][0];
          }
    		
          elseif ("ort" == $column) {
             $custom = get_post_custom();
             echo $custom["ort"][0];
          }
       }
    

    Was mache ich falsch ?
    😎
    Beste Grüße
    Worels

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 2 Antworten – 1 bis 2 (von insgesamt 2)
  • Thread-Starter worels

    (@worels)

    Der Fehler in add_meta_box(„modul-meta ist auf ort-meta berichtigt … es ändert aber nichts …

    Thread-Starter worels

    (@worels)

    Lösung:

    Der Action-Hook-Tag zur Ausgabe von Tabellenzellen sollte "manage_workshopseite_posts_custom_column" lauten.

    Diese Aktion übergibt zwei Parameter an den callback, die Spalten-ID und die Post-ID. Beide sind wichtig für die Ausgabe des korrekten Wertes. Wird die Post-ID an get_post_custom () übergeben, gibt es keine Möglichkeit für diese Funktion zu wissen, für welche ID die Datengedacht sind. Da das kein Post-Loop am Frontend ist, bei der aktuelle Post-Daten aus einem globalen $ -Post gezogen werden können, muss der Bezug angegeben werden.

    • Diese Antwort wurde geändert vor 6 Jahren, 8 Monaten von worels.
Ansicht von 2 Antworten – 1 bis 2 (von insgesamt 2)
  • Das Thema „Übersichtsseite im Backend zeigt Spalten-Werte nicht“ ist für neue Antworten geschlossen.