Şimdi, özel yazı tipleri ve tarihe göre mutlaka kronolojik olarak düzenlenmesi gerekmeyen diğer içerik parçaları ile, örneğin: müşteri "GÖMLEK" özel yazı tipi olarak 100 tişörte sahip ve görünüm sırasını ayarlamak istiyor .
Sitenin editörünün/yöneticisinin SIRALAMA sıralamasını yapması için hangi yaklaşımı önerirsiniz?
Bunları önerebilirim:
http://drewgourley.com/order-up-custom-ordering-for-wordpress/
taksonomi hakkında filtre uygulayabilirsiniz
// 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;
}
bu kancaları kullan
// to filter custom post type per custom taxonomy
add_action( 'restrict_manage_posts', array( &$this, 'restrict_manage_posts') );
add_action( 'request', array( &$this, 'request' ) );
Menü üreticisi yönetici ekranlarına bakardım. Bir menü sadece özel bir yazı tipi olduğundan, bunlardan bazılarının ilham kaynağı olarak kullanılabileceğinden eminim.
Tek yapmanız gereken her "Gömlek" için bir konum ayarlamaksa, neden sadece Menü Sırası'nı kullanmıyorsanız, WP_Query'nüzde menu_order ile sıralayabilirsiniz. Muhtemelen gönderinin menu_order
özelliğini ayarlayan bir meta kutusu yapmanız gerekecektir. Sonra WP_Query
içinde:
$shirts = new WP_Query( 'post_type=shirt&orderby=menu_order&order=ASC' );
Bu, Sayfa Menüsü'nü ayarlamak için Media Upload
Galeri sekmesindeki görüntüleri nasıl sipariş ettiğinize benzer şekilde çalışır.
Yoksa bir şeyi yanlış mı anlıyorum?
Bir eklenti veya kodda yazı türünü oluşturuyorsam, bu kodu eklemeliyim, bu da ön ve arka uç için varsayılan bir düzen belirlemenize ve ayrıca GET değişkenini yönetici olarak ayarlamanıza izin verir. WordPress yöneticisinin değişikliği tanıması ve başlığa, tarihe veya yönetici tablosunda gösterdiğiniz herhangi bir şeye göre sıralamanız durumunda oku yukarı koyar.
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
Menu_order varsayılan olduğu için, menu_order tarafından özel bir yazı türü sıralıyorsanız, ancak kullanıcının kendilerini sıralama konusunda endişelenmesini istemediğiniz ve başlık gibi bir şey kullanmak istediğiniz bir yazı türüdür , çok kullanışlı.
Gerçekten rastgele bir sıralama düzenine sahip olmak için (herhangi bir gönderi alanıyla tamamen ilgisiz), bir "sıralama değeri" (veya "ağırlık") alanı oluşturmanız ve bu alandaki her öğe için sayısal bir değer girmeniz gerekir. Daha sonra o alanda sıralama yapabilirsiniz.