it-swarm.com.de

Ist es empfehlenswert, benutzerdefinierte Optionen bei der Registrierung eines Beitragstyps anzugeben?

Eigentlich eher eine offene Diskussion als eine Frage, da ich weiß, dass das Hinzufügen von benutzerdefinierten Argumenten zum Objekt post type funktioniert, aber ich frage mich, ob es in irgendeiner Weise technisch falsch ist.

Grundsätzlich gilt bei der Registrierung eines Beitragstyps:

$labels = array(
    'name' => _x('Drews', 'post type general name'),
    'singular_name' => _x('Drew', 'post type singular name'),
    'add_new' => __('Add New'),
    'add_new_item' => __('Add New Item'),
    'edit_item' => __('Edit Item'),
    'new_item' => __('New Item'),
    'view_item' => __('View Item'),
    'search_items' => __('Search Items'),
    'not_found' =>  __('No Items found'),
    'not_found_in_trash' => __('No Items found in Trash'), 
    'menu_name' => 'Archives'
);
$rewrite = array(
    'slug' => 'drews'
);
$args = array(
    'labels' => $labels,
    'public' => true,
    'show_in_menu' => true, 
    'query_var' => 'drews',
    'rewrite' => $rewrite,
    'has_archive' => true, 
    'hierarchical' => false,
    'supports' => array('title','editor','author','comments'),
    '_drew_made_this' => true
); 
register_post_type('drews',$args);

Notieren Sie sich die allerletzte Zeile in meinem $ args-Array, '_drew_made_this', die auf 'true' gesetzt ist. Dies ermöglicht mir, auf verschiedene nützliche Arten dagegen zu konditionieren, so wie Sie bei Verwendung von get_post_types () nach "_builtin" filtern würden. Wie ich schon sagte, ich weiß, dass dies funktioniert, weil ich es verwende, aber gibt es ein Potenzial dafür, WordPress auf irgendeine seltsame Weise zu beschädigen.

2
Drew Gourley

Sie können beliebig viele Argumente zu register_post_type() $ args hinzufügen, da sie alle in $wp_post_types global in einem Array gespeichert sind (z. B .: $ wp_post_types [type] = $ args), aber ich bin nicht sicher, ob dies der beste Weg ist zu gehen, da dies in Zukunft leicht geändert werden könnte und Ihre Funktionen dann nicht mehr funktionieren. Ein besserer Weg wäre, eine eigene Option in der Optionstabelle zu erstellen und diese zu verwenden. Ich meine, Sie könnten get_post_types() verwenden und sie speichern als Array in einer Art => $ args und auf diese Weise sind Sie nicht auf die Kernfunktionalität angewiesen, um im aktuellen Zustand zu bleiben. Hoffe das macht Szene.

2
Bainternet