it-swarm.com.de

Benutzerdefinierte Admin-Spalten für ALLE benutzerdefinierten Beitragstypen

Ich habe die folgende Funktion, die für meinen benutzerdefinierten Beitragstyp "Video" perfekt funktioniert, um benutzerdefinierte Spalten im Dashboard anzuzeigen.

Ich habe beschlossen, dass mein Plugin benutzerdefinierte Beitragstypen dynamisch erstellen soll, sodass ich den genauen Namen des benutzerdefinierten Beitragstyps nicht mehr kenne und diesen Filter nach Möglichkeit auf alle benutzerdefinierten Beitragstypen anwenden möchte.

    function populate_columns( $column ) {  // populate the custom columns
    if ( 'thumbnail' == $column ) {
        $thumb_array = array('post_type' => 'video');
    $thumbnails = get_posts($thumb_array);
            if ( has_post_thumbnail($thumbnail->ID)) {
              echo '<a href="' . get_edit_post_link( $thumbnail->ID ) . '" title="' . esc_attr( $thumbnail->post_title ) . '">';  // link thumbnail to edit page
              echo get_the_post_thumbnail($thumbnail->ID, array(100,100));
              echo '</a>';
              }
    }
    elseif ( 'duration' == $column ) {
        $duration_array = array ('post_type'=> 'video');
        $duration = get_post_meta( get_the_ID(), '_my_meta_duration', true );
        if ($duration != '') {
            echo $duration . ' mins';
    }

    }
}

add_action( 'manage_video_posts_custom_column', 'populate_columns' );

Ich habe diese beiden Beispiele von der Codex-Seite für get_post_types durchgesehen, konnte aber nicht herausfinden, wie das Array post_types in meine Funktion implementiert werden kann.

Der Aufruf zum Abrufen von Beitragstypen gibt die registrierten Beitragstypen zurück.

<?php $post_types=get_post_types(); ?>

Eine Liste aller registrierten Beitragstypen ausgeben

<?php 
$post_types=get_post_types('','names'); 
foreach ($post_types as $post_type ) {
  echo '<p>'. $post_type. '</p>';
}
?>
3
Sean

Wenn Sie alle benutzerdefinierten Beitragstypen sowie die integrierten Beitragstypen (Beiträge und Seiten) als Ziel festlegen möchten, müssen Sie den Hook manage_posts_custom_column anstelle des Hooks manage_{post_type}_posts_custom_column verwenden, der für die Ausrichtung auf bestimmte Beitragstypspalten verwendet wird, da sich die Benennungskonventionen geringfügig unterscheiden aber großer Unterschied in wie sie funktionieren.

Beispiel:

add_action( 'manage_posts_custom_column', 'your_callback'); 

Mit dem obigen Hook können Sie weiterhin bestimmte Beitragstypen, wie die integrierten, unter bestimmten Bedingungen prüfen und ausschließen, wenn sie nicht für Ihre Logik gelten. Dies ist jedoch erforderlich, um alle Beitragstypen als Ziel festzulegen, wenn Sie den Beitrag nicht kennen Geben Sie den Namen im Voraus ein.

1
userabuser