Anzeige der Spalte für die benutzerdefinierte Taxonomie auf der Verwaltungsseite für benutzerdefinierte Beitragstypen

Lesezeit: 3 Minuten

Benutzer-Avatar
Benutzer705100

Ich möchte meinem benutzerdefinierten Beitragstyp-Verwaltungsfenster eine Spalte hinzufügen, um meine benutzerdefinierte Taxonomie anzuzeigen.

Diese von @SarthakGupta bereitgestellte Lösung erstellt die Spalte für mich, gibt aber weder die Taxonomie noch die Meldung „Kein Taxonomiesatz“ wieder: Anzeigen der benutzerdefinierten Taxonomiespalte in benutzerdefinierten Posts-Typenlisten

Ich habe ähnliche Lösungen gesehen, die an anderer Stelle veröffentlicht wurden, mit ähnlichen Beschwerden über die leere Taxonomie-Spalte.

Was könnte das Problem verursachen? Kann es sein, dass diese Lösung nicht mit WordPress 3.3 funktioniert?

Vielen Dank.

Ab WordPress 3.5 können Sie es aktivieren, wenn Sie eine benutzerdefinierte Taxonomie registrieren, indem Sie Folgendes hinzufügen:

'show_ui'           => true,
'show_admin_column' => true,

Ich hatte dieses Problem und stellte fest, dass das Ersetzen der WP-Funktionen get_the_terms durch eine benutzerdefinierte Abfrage besser funktionierte – versuchen Sie es (wobei custtype der Name Ihres benutzerdefinierten Beitragstyps ist):

// custom columns
add_filter("manage_edit-custtype_columns", "custtype_columns");
add_action("manage_posts_custom_column", "custtype_custom_columns",10,2);

function custtype_columns($columns){
    $columns = array(
        "cb" => "<input type=\"checkbox\" />",
        "title" => "Title",
        "slug" => "URL Slug",
        "custtype-type" => "Custom Taxonomy"
    );
    return $columns;
}

function custtype_custom_columns($column,$id) {
    global $wpdb;
        switch ($column) {
        case 'custtype-type':
            $types = $wpdb->get_results("SELECT name FROM $wpdb->posts LEFT OUTER JOIN $wpdb->term_relationships ON ID = object_id LEFT OUTER JOIN $wpdb->terms ON term_taxonomy_id = term_id WHERE ID = {$id}");
            foreach($types as $loopId => $type) {
                echo $type->name.', ';
            }
            break;
        case 'slug':
            $text = basename(get_post_permalink($id));
            echo $text;
            break;
        default:
            break;
        } // end switch
}

Funktioniert das überhaupt?

  • mj7: Vielen Dank. Das ist toll. Die Taxonomien werden nun angezeigt. Eine Frage jedoch: Wie würde ich die Slugs und Taxonomien als Links anzeigen lassen?

    – Benutzer705100

    21. März 2012 um 20:21 Uhr


  • Offensichtlich hängt es davon ab, womit Sie sie verknüpfen möchten – das Folgende würde jede Taxonomie in der Liste mit der Bearbeitungsseite für diese Taxonomie verknüpfen: $types = $wpdb->get_results(“SELECT name,term_id FROM $wpdb->posts LEFT OUTER JOIN $wpdb->term_relationships ON ID = object_id LEFT OUTER JOIN $wpdb->terms ON term_taxonomy_id = term_id WHERE ID = {$id}”); foreach($types as $loopId => $type) { echo ‘

    – mj7

    21. März 2012 um 20:26 Uhr


  • Ich kann ehrlich gesagt nicht sagen, was der richtige Ort für die Seite ist, die Sie brauchen – der beste Weg, das herauszufinden, ist, den Link der Zielseite zu kopieren – fügen Sie ihn in das a-Tag um den Typ ein und fügen Sie dann das $type-> ein term_id-Variable. Hinweis – Sie müssen sicherstellen, dass Sie das Feld term_id wie im obigen Beispiel zur SQL SELECT-Anweisung hinzufügen

    – mj7

    21. März 2012 um 21:05 Uhr


  • Korrigiert den Link-Fehler (my bad). Links funktionieren! Nun, wenn Sie die Geduld mit dem Thema nicht ganz verloren haben, wie können Sie den Link dazu bringen, die Einträge für diese Taxonomie anzuzeigen (ähnlich wie bei der Auswahl der Kategorie auf der Hauptseite der Posts-Administration), anstatt den Bearbeitungsbildschirm für die Taxonomie zurückzugeben?

    – Benutzer705100

    21. März 2012 um 21:32 Uhr


  • 1365770cookie-checkAnzeige der Spalte für die benutzerdefinierte Taxonomie auf der Verwaltungsseite für benutzerdefinierte Beitragstypen

    This website is using cookies to improve the user-friendliness. You agree by using the website further.

    Privacy policy