Varsayılan "posta etiketleri" sınıflandırması yeniden adlandırılabilir mi?


16

Ben yazı ve 2 özel yazı türleri (etiket toplama / toplama izin vermek için) arasında ortak bir etiket kümesi sağlamak için varsayılan "posta etiketleri" taksonomi kullanmayı planlıyorum.

Özellikle bu sınıflandırma diğer özel yazı türlerine eklendiğinde, "genel etiketler" gibi "yazı etiketleri" sınıflandırmasını başka bir şeye - "genel etiketler" gibi - yeniden adlandırmak istiyorum.

Yani, bunu Wordpress içinde yapmanın herhangi bir yolu var mı, yoksa SQL ile mi yapıyorum. Ayrıca, herkes bu sınıflandırma nane "posta etiketleri" ile bir beklenti olup olmadığını biliyor

Yanıtlar:


23

Sınıflandırmalarla ilgili bilgiler genel $wp_taxonomiesdizide saklanır . Yeni bir sınıflandırma kaydederseniz, kullanıcı arayüzünde kullanılacak etiketler de dahil olmak üzere farklı özelliklere sahip bir nesne olarak eklenir. Standart etiketleri ve kategorileri de, her sayfa yüklemesinde orada kayıtlı fonksiyonu olduğu yangınlar üzerinde .create_initial_taxonomies()init

Basit bir nesne dizisi olduğundan, onu değiştirebilir ve ne olduğunu görebiliriz. İlgilendiğimiz özellikler labelsve label.

add_action( 'init', 'wpa4182_init');
function wpa4182_init()
{
    global $wp_taxonomies;

    // The list of labels we can modify comes from
    //  http://codex.wordpress.org/Function_Reference/register_taxonomy
    //  http://core.trac.wordpress.org/browser/branches/3.0/wp-includes/taxonomy.php#L350
    $wp_taxonomies['post_tag']->labels = (object)array(
        'name' => 'WPA 4182 Tags',
        'menu_name' => 'WPA 4182 Tags',
        'singular_name' => 'WPA 4182 Tag',
        'search_items' => 'Search WPA 4182 Tags',
        'popular_items' => 'Popular WPA 4182 Tags',
        'all_items' => 'All WPA 4182 Tags',
        'parent_item' => null, // Tags aren't hierarchical
        'parent_item_colon' => null,
        'edit_item' => 'Edit WPA 4182 Tag',
        'update_item' => 'Update WPA 4182 Tag',
        'add_new_item' => 'Add new WPA 4182 Tag',
        'new_item_name' => 'New WPA 4182 Tag Name',
        'separate_items_with_commas' => 'Separata WPA 4182 tags with commas',
        'add_or_remove_items' => 'Add or remove WPA 4182 tags',
        'choose_from_most_used' => 'Choose from the most used WPA 4182 tags',
    );

    $wp_taxonomies['post_tag']->label = 'WPA 4182 Tags';
}

Her yerde kontrol etmedim ve muhtemelen temanızda kendiniz değiştirmeniz gerekecek, ancak bu istediğinizi yapıyor gibi görünüyor:

Metabox'ı yeni etiketlerle etiketleme


Güzel bir tane - bunu bir deneyeceğim ve rapor vereceğim. Teşekkürler
anu

tam olarak ihtiyacım olan şey. $ taksonomileri hakkında küresel bir şey bilmiyordum
helgatheviking

Bu kodu kullanırken küçük bir sorun: DEBUG: true ile WP 3.8.1 çalıştırırsanız, her etiketin düzenleme sayfasında bir uyarı görüyorum: "Uyarı: Tanımsız özellik: stdClass :: $ view_item in / wp-include / admin -bar.php 508 satırında ". Gerçekten, listeye bir "view_item" etiketi eklersem (View WPA 4182), bildirim geçer.
Manu

3

Kategoriler sınıflandırmasını kaldırabilir ve sonra kendi kategorinizi oluşturabilirsiniz.

Örneğimde, Kategoriler kategorisi sınıflandırmasını kaldırdım ve bir Konu sınıflandırmasıyla değiştirdim

add_action( 'init', 'unregister_taxonomy' );
function unregister_taxonomy() {
    global $wp_taxonomies;
    $taxonomy = 'category';
    if ( taxonomy_exists($taxonomy) ){
        unset( $wp_taxonomies[$taxonomy] );
    }
}

function article_subjects() {
    $labels = array(
        'name'                       => _x( 'Subjects', 'Taxonomy General Name', 'dc' ),
        'singular_name'              => _x( 'Subject', 'Taxonomy Singular Name', 'dc' ),
        'menu_name'                  => __( 'Subjects', 'dc' ),
        'all_items'                  => __( 'All Items', 'dc' ),
        'parent_item'                => __( 'Parent Item', 'dc' ),
        'parent_item_colon'          => __( 'Parent Item:', 'dc' ),
        'new_item_name'              => __( 'New Subject', 'dc' ),
        'add_new_item'               => __( 'Add New Item', 'dc' ),
        'edit_item'                  => __( 'Edit Item', 'dc' ),
        'update_item'                => __( 'Update Item', 'dc' ),
        'separate_items_with_commas' => __( 'Separate items with commas', 'dc' ),
        'search_items'               => __( 'Search Items', 'dc' ),
        'add_or_remove_items'        => __( 'Add or remove items', 'dc' ),
        'choose_from_most_used'      => __( 'Choose from the most used items', 'dc' ),
        'not_found'                  => __( 'Not Found', 'dc' ),
    );
    $args = array(
        'labels'                     => $labels,
        'hierarchical'               => false,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => true,
    );
    register_taxonomy( 'article_subjects', array( 'post' ), $args );
}
add_action( 'init', 'article_subjects', 0 );

Tam da ihtiyacım olan şey bu. Teşekkürler! Sadece küçük bir değişiklik yaptım: english.stackexchange.com/questions/25931/…
tehlivi

2

Belirli kategori etiketlerini yeniden adlandırın:

add_action('init', 'renameCategory');
function renameCategory() {
    global $wp_taxonomies;

    $cat = $wp_taxonomies['category'];
    $cat->label = 'My Categories';
    $cat->labels->singular_name = 'My Categorie';
    $cat->labels->name = $cat->label;
    $cat->labels->menu_name = $cat->label;
    //…
}

Etiketler: http://codex.wordpress.org/Function_Reference/register_taxonomy#Arguments


Bu, varsayılan kategori sınıflandırmasının adını ayarlamanın en kolay yoludur, harika cevap.
serraosays

0

Gönderen burada

// hook the translation filters
add_filter(  'gettext',  'change_post_to_article'  );
add_filter(  'ngettext',  'change_post_to_article'  );

function change_post_to_article( $translated ) {
     $translated = str_ireplace(  'Post',  'Article',  $translated );  // ireplace is PHP5 only
     return $translated;
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.