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?

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');

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
    )
);

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.