Wie ändert man das Aussehen des Inhalts von Post-List-Spalten?

Hier über Backoffice sprechen.

Normalerweise füge ich Spalten und Filter zum Backoffice für bestimmte benutzerdefinierte Post-Typen hinzu. Kein Problem hier. Was, wenn ich einfach etwas am Inhalt der Standardspalten ändern möchte? Zum Beispiel, wie man die Farbe der Posttitel ändert? Und sagen wir, nur einige Titel auf einer Liste, zum Beispiel basierend auf den Begriffen, zu denen der Beitrag gehört?

Ich würde nur eine Aktion wie brauchen

manage_{$post->post_type}_posts_custom_column 

Aber für normale / Standardspalten. Die obige Aktion erreicht nur benutzerdefinierte Spalten.

Solutions Collecting From Web of "Wie ändert man das Aussehen des Inhalts von Post-List-Spalten?"

CSS ist die Antwort. Wenn Sie sich den HTML-Code jeder Zeile ansehen (

), sehen Sie, dass classn mit Post-ID, Post-Status, Post-Tags, Kategorien usw. vorhanden sind. So können Sie einfach CSS-Regeln anwenden, die auf diesen classn basieren und auf Post-Tags basieren.

Dies ist beispielsweise eine Zeile in einer meiner Websites:

     
Here the title

Wenn ich die Farbe des Titels ändern möchte, wenn der Beitrag zum Tag “metro” gehört:

 .tag-metro .post-title { color: red; } 

Sie können dieses CSS in eine Datei einfügen und es in admin in die Warteschlange stellen .

Wenn Begriffe aus einer benutzerdefinierten Taxonomie stammen, können Sie post_class einhaken, um die auf der benutzerdefinierten Taxonomie basierenden classn hinzuzufügen:

 add_filter( 'post_class', function( $classes, $class, $ID ) { $taxonomy = 'my-custom-taxonomy'; $terms = get_the_terms( (int) $ID, $taxonomy ); if( !empty( $terms ) ) { foreach( (array) $terms as $order => $term ) { if( !in_array( $term->slug, $classes ) ) { $classes[] = $term->slug; } } } return $classes; }, 10, 3 ); 

Unglücklicherweise existiert solch ein Filter nicht. Die Ausgabe erfolgt jedoch über die üblichen WordPress-Filter. ZB 'the_title' für Titel.

Das einzige Problem ist, dass Sie dem 'the_title' nicht einfach einen Filter hinzufügen können, da dies viele Dinge 'the_title' . Sie können jedoch Filter verwenden, die nur auf dem Post-List-Admin-Bildschirm ( edit.php ) ausgetriggers werden, um den Filter zum Titel hinzuzufügen.

Zum Beispiel:

 // this filter is fired only on edit.php for 'post' post type add_filter('manage_edit-post_sortable_columns', function($sortable) { // add a filter to post title. Use the lowest possible priority. add_filter('the_title', 'my_admin_title_color', PHP_INT_MAX); return $sortable; }); function my_admin_title_color($title) { // you can use template tags or even access to global $post if ( has_category('uncategorized') ) { $title = ''.$title.''; } return $title; } 

Im obigen Code habe ich 'manage_edit-post_sortable_columns' da es sich um einen Filter handelt, der nur in der edit.php für den Post-Post-Typ edit.php .

Es ist eines der "manage_{$screen_id}_sortable_columns" , Filter, die mit einem anderen Namen für verschiedene Post-Typen ausgetriggers werden. Als Beispiel können Sie "manage_edit-page_sortable_columns" um auf Seiten zu "manage_edit-page_sortable_columns" . Diese Besonderheit erlaubt es, den weit verbreiteten the_title ziemlich sicher hinzuzufügen. Darüber hinaus sollte durch die Verwendung einer sehr niedrigen Priorität die Kompatibilität mit anderen Filtern sichergestellt werden.

Danach können Sie den Titel einfach mit einem Bereich mit einigen benutzerdefinierten Stilen umschließen (wie in meinem Beispielcode) oder eine benutzerdefinierte HTML-class als Stile mit externem CSS.