it-swarm.com.de

Kann ich ein benutzerdefiniertes Post-Typ-Label für ein untergeordnetes Thema ändern?

Ich entwickle ein untergeordnetes Thema für eine Premium-Vorlage. Dies wird mit einem benutzerdefinierten Beitragstyp mit dem Labelnamen "Projekte" geliefert. Ich möchte ihn jedoch in etwas anderes ändern. Ich weiß, dass ich auf die Datei functions.php gehe Datei des Hauptthemas Ich kann es leicht ändern, aber ich möchte es von meinem untergeordneten Thema aus ändern, damit ich keine der Originaldateien bearbeiten muss. Ist das möglich?

Danke im Voraus!

6

Es gibt ein globales Array $wp_post_types. Sie können $wp_post_types[$post_type]->labels ändern, nachdem das übergeordnete Thema die CPT festgelegt hat.

Also ... wenn das übergeordnete Thema die CPT auf 'init' wie folgt registriert:

add_action( 'init', 'register_my_cpt', 12 );

Dann brauchen Sie eine spätere Priorität:

add_action( 'init', 'change_cpt_labels', 13 );

… Oder ein späterer Haken. Ich würde wp_loaded verwenden:

add_action( 'wp_loaded', 'change_cpt_labels' );

Beispiel für benutzerdefinierten Beitragstyp place geändert in location

add_action( 'wp_loaded', 'wpse_19240_change_place_labels', 20 );

function wpse_19240_change_place_labels()
{
    $p_object = get_post_type_object( 'place' );

    if ( ! $p_object )
        return FALSE;

    // see get_post_type_labels()
    $p_object->labels->name               = 'Locations';
    $p_object->labels->singular_name      = 'Location';
    $p_object->labels->add_new            = 'Add location';
    $p_object->labels->add_new_item       = 'Add new location';
    $p_object->labels->all_items          = 'All locations';
    $p_object->labels->edit_item          = 'Edit location';
    $p_object->labels->name_admin_bar     = 'Location';
    $p_object->labels->menu_name          = 'Location';
    $p_object->labels->new_item           = 'New location';
    $p_object->labels->not_found          = 'No locations found';
    $p_object->labels->not_found_in_trash = 'No locations found in trash';
    $p_object->labels->search_items       = 'Search locations';
    $p_object->labels->view_item          = 'View location';

    return TRUE;
}
14
fuxia