visivamente sorta di ordinare “tipi di messaggi personalizzati” per gli utenti finali
-
16-10-2019 - |
Domanda
Ora con questi tipi di messaggi personalizzati e altri pezzi di contenuti che non necessariamente bisogno di essere organizzata in ordine cronologico in base alla data, per Esempio: il cliente ha un 100 T-shirt il tipo di messaggio personalizzato "SHIRT" e vuole impostare l'ordine aspetto.
Quale approccio vi proponiamo di prendere per lasciare l'editor / admin del sito SORT loro ordine?
Soluzione
Potrei suggerire questi:
http://drewgourley.com/order-up-custom-ordering -per-wordpress /
Altri suggerimenti
è possibile filtrare su Taxonomie
// to filter by category
function restrict_manage_posts() {
global $typenow;
if ( FB_CPT_POST_TYPE_1 == $typenow ) {
$args = array('orderby' => 'count', 'hide_empty' => true);
echo $this->get_taxonomy_html_select(FB_CPT_TAXONOMY_TYPE_1, $args);
}
}
function get_taxonomy_html_select($taxonomy_name, $args) {
$taxonomy = get_taxonomy($taxonomy_name);
$terms = get_terms($taxonomy_name, $args);
$label = __( 'Show all ' . $taxonomy->label, FB_CPT_TEXTDOMAIN );
$html = array();
$html[] = '<select style="min-width:155px;" id="' . $taxonomy_name . '" name="' . $taxonomy_name . '" class="postform">';
$html[] = '<option value="0">' . $label . '</option>';
if ( isset($_GET[$taxonomy_name]) )
$this_term = $_GET[$taxonomy_name];
else
$this_term = '';
foreach($terms as $term) {
$default = ( $this_term == $term->term_id ? ' selected="selected"' : '' );
$value = esc_attr($term->name);
$value = $value . ' (' . (int)$term->count . ')';
$html[] = "\t" . '<option value="' . $term->term_id . '"' . $default . '>' . $value . '</option>';
}
$html[] = '</select>' . "\n";
return implode( "\n", $html );
}
function request($request) {
global $pagenow;
if ( is_admin() && 'edit.php' == $pagenow && isset( $request[FB_CPT_TAXONOMY_TYPE_1] ) && FB_CPT_POST_TYPE_1 == $request[FB_CPT_TAXONOMY_TYPE_1] ) {
$request['taxonomy'] = FB_CPT_TAXONOMY_TYPE_1;
$request['term'] = get_term($request[FB_CPT_TAXONOMY_TYPE_1], FB_CPT_TAXONOMY_TYPE_1)->name;
unset($request['name']);
}
return $request;
}
utilizzare questo ganci
// to filter custom post type per custom taxonomy
add_action( 'restrict_manage_posts', array( &$this, 'restrict_manage_posts') );
add_action( 'request', array( &$this, 'request' ) );
Vorrei guardare gli schermi di amministrazione del generatore di menu. Dal momento che un menu è solo un tipo di messaggio personalizzato, sono sicuro che alcuni di quella roba può essere utilizzato come fonte di ispirazione ..
Al fine o hanno un ordine di ordinamento veramente arbitrario (completamente estranei a qualsiasi campo post), avresti bisogno di creare un "valore di sorta" di campo (o "peso") e immettere un valore numerico per ogni elemento in quel campo . È possibile quindi ordinare su quel campo.
Se tutto quello che vogliamo fare è impostare una posizione per ogni "camicia", allora perché non solo utente il menu Ordine, quindi è possibile ordinare per menu_order nel vostro WP_Query. Probabilmente si dovrà fare una scatola di meta, che imposta la proprietà menu_order
del palo. Poi, nel tuo WP_Query
:
$shirts = new WP_Query( 'post_type=shirt&orderby=menu_order&order=ASC' );
Questo potrebbe funzionare simile a come si ordina immagini nella scheda Raccolta Media Upload
, per l'ordine del menu set di pagina.
o sono io incomprensioni qualcosa?
quello che preferisco fare se sto creando il tipo di post in un plugin o nel codice è quello di aggiungere anche questo codice, che permette di impostare un ordine predefinito per la parte anteriore e back-end e anche di impostare la variabile GET in Admin in modo che l'amministrazione di WordPress riconosce il cambiamento e mette la freccia su se siete l'ordinamento per titolo, data, o qualsiasi altra cosa si sta mostrando nella tabella di amministrazione.
add_filter( 'pre_get_posts' , 'my_cpt_order' ); // Runs before the posts are fetched
function my_cpt_order( $query ) {
// Check query and alter only the query needed
//echo '<PRE>'; print_r($query); echo '</PRE>';
if ($query->query['post_type'] == 'cpt' && !isset($query->query['orderby'])) {
$query->set( 'orderby' , 'title' );
$query->set( 'order' , 'asc' );
//get the arrow to show up over title in admin
if (is_admin()) {
$_GET['orderby'] = 'title';
$_GET['order'] = 'asc';
}
} //if
} //my_cpt_order
Dal menu_order è il default questo non è necessario se si sta ordinamento di un tipo di messaggio personalizzato menu_order, ma se si tratta di un tipo di messaggio in cui non si desidera che l'utente deve preoccuparsi di se stessi e l'ordinamento che si desidera utilizzare qualcosa di simile titolo, è molto comodo.