Hinzufügen der Spalte "Menüreihenfolge" zum Administratorbildschirm für benutzerdefinierte Posts

33

Ich möchte das menu orderAttribut verwenden, um die Reihenfolge für einen benutzerdefinierten Beitragstyp zu steuern, der für einen bestimmten Zweck verwendet wird.

Es ist einfach genug, dies dem CPT über hinzuzufügen. supports => array('page-attributes')Wie kann ich den Wert der Menüreihenfolge auf dem Bildschirm mit der Administratorliste für dieses CPT anzeigen?

anu
quelle

Antworten:

48

OK - am Ende stellte sich heraus, dass es ziemlich einfach war - da ich eine Art mentale Blockade hatte - menu_order ist eine Variable im $postObjekt (danke an @brady, der mich daran erinnert hat).

@ Scribu Beitrag zum Erstellen sortierbarer Spaltenwerte liefert dann den Rest.

Angenommen, der benutzerdefinierte Beitragstyp wird aufgerufen header_text , sind dies die Funktionen und Hooks, die benötigt werden:

Fügen Sie eine neue Spalte für die Bestellung hinzu

/**
* add order column to admin listing screen for header text
*/
function add_new_header_text_column($header_text_columns) {
  $header_text_columns['menu_order'] = "Order";
  return $header_text_columns;
}
add_action('manage_edit-header_text_columns', 'add_new_header_text_column');

Rendern Sie die Spaltenwerte

/**
* show custom order column values
*/
function show_order_column($name){
  global $post;

  switch ($name) {
    case 'menu_order':
      $order = $post->menu_order;
      echo $order;
      break;
   default:
      break;
   }
}
add_action('manage_header_text_posts_custom_column','show_order_column');

Stellen Sie die Spalte so ein, dass sie sortiert werden kann

/**
* make column sortable
*/
function order_column_register_sortable($columns){
  $columns['menu_order'] = 'menu_order';
  return $columns;
}
add_filter('manage_edit-header_text_sortable_columns','order_column_register_sortable');
anu
quelle
In WP 3.1 wurde manage_edit - $ {post_type} _columns durch manage _ $ {post_type} _posts_columns ersetzt: codex
ptriek
Gibt es wirklich einfach keine Möglichkeit, dies zur Standardbestellung zu machen? Mag Seiten?
Howdy_McGee
7

Es ist zu lange her, aber nur für den Datensatz können Sie die Option "Menüreihenfolge" im Administrator anzeigen, indem Sie einfach "Seitenattribute" in das Optionsfeld "Unterstützungen" aufnehmen. Beispielsweise:

    register_post_type( 'columna',
    array(
        'labels' => array(
            'name' => __( 'Columnas' ),
            'singular_name' => __( 'Columna' ),
        ),
        'supports' => array( 'title', 'thumbnail', 'excerpt', 'page-attributes' ),
        'public' => true,
        'has_archive' => false,
        'menu_position'=>5
    )
);
Juan Salas
quelle
2
Die Person, die die Frage veröffentlicht, kennt bereits die 'Seitenattribute'. Der Wert für die Seitenreihenfolge darf nicht in der erforderlichen Weise angezeigt werden.
s_ha_dum
Ich habe Seitenattribute in den Unterstützungen für den benutzerdefinierten Beitragstyp, die der Seitenleiste beim Bearbeiten eines dieser benutzerdefinierten Beitragstypen eine Menüreihenfolge hinzufügen, aber beim Anzeigen der Liste aller Elemente im benutzerdefinierten Beitragstyp in wp admin ist dies nicht der Fall Spalte mit der Menüreihenfolge anzeigen. Ist noch etwas erforderlich, um es zu zeigen? Unter Bildschirmoptionen für Spalten ist Datum die einzige Option, die aktiviert ist.
cchiera
-3

Sie müssen Ihr CPT registrieren bei:

'hierachical' => true
ungestaltbar
quelle
Nicht , dass nur Sie ein Elternteil für das Element im Bearbeitungsbildschirm festlegen können - ich habe versucht, und es macht keinen Unterschied zu der Anzeige - Bildschirm
ANU
1
Es tut uns leid, aber Sie haben nicht bemerkt, dass Sie der Liste benutzerdefinierte Spalten hinzufügen möchten. Vielleicht gibt Ihnen dies einen Ausgangspunkt: shibashake.com/wordpress-theme/add-custom-post-type-columns
ungestaltbar