it-swarm.com.de

Kann die Standardtaxonomie "Post-Tags" umbenannt werden?

Ich beabsichtige, die Standardtaxonomie "Post-Tags" zu verwenden, um einen gemeinsamen Satz von Tags für Posts und zwei benutzerdefinierte Post-Typen bereitzustellen (um das Sammeln/Aggregieren nach Tags zu ermöglichen).

Ich möchte die Taxonomie "Post-Tags" in "Allgemeine Tags" umbenennen, um sie ein wenig übersichtlicher zu gestalten, insbesondere wenn diese Taxonomie mit anderen benutzerdefinierten Post-Typen verknüpft ist.

Gibt es eine Möglichkeit, dies in Wordpress zu tun, oder mache ich das über SQL? Außerdem weiß jeder, ob zu erwarten ist, dass diese Taxonomie mit den nanen "Post-Tags" existiert.

15
anu

Die Informationen zu Taxonomien werden im globalen Array $wp_taxonomies gespeichert. Wenn Sie eine neue Taxonomie registrieren, wird sie als Objekt mit verschiedenen Eigenschaften hinzugefügt, einschließlich der in der Benutzeroberfläche zu verwendenden Bezeichnungen. Dort werden bei jedem Seitenaufruf auch die Standard-Tags und Kategorien registriert, mit der Funktion create_initial_taxonomies() , die für init ausgelöst wird.

Da es sich um ein einfaches Array von Objekten handelt, können wir es ändern und sehen, was passiert. Die Eigenschaften, an denen wir interessiert sind, sind labels und 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';
}

Ich habe es nicht überall überprüft, und Sie müssen es wahrscheinlich selbst in Ihrem Thema ändern, aber dies scheint zu tun, was Sie wollen:

Tag metabox with new labels

21
Jan Fabry

Sie können die Kategorien-Taxonomie entfernen und dann einfach Ihre eigene erstellen.

In meinem Beispiel habe ich die Taxonomie für Post-Kategorien entfernt und durch eine Taxonomie für Subjects ersetzt

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

Benennen Sie bestimmte Kategoriebeschriftungen um:

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;
    //…
}

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

1
lemats

Von hier

// 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;
}
0
kaiser