Dynamische Funktionsnamen in php

Ich möchte die Erstellung von "Custom Post Types" von WordPress, wie es ist mühsam zu gehen, die durch das gleiche Skript und ändern Sie alle benutzerdefinierten post-Typ-name-Instanzen manuell über und über.

Ist es ziemlich einfach zu erreichen, indem Sie erstellen eine variable, die die CPT-Namen und verwenden Sie es überall dort, wo es benötigt wird. Auf diese Weise, Alles, was ich zu tun ist, deklarieren Sie die variable am Anfang des Skripts und das sollte kümmern sich um den rest.

Das einzige Problem ist, dass, damit es funktioniert, ich muss auch das Präfix der CPT Namen vor jede Funktion im script und es scheint, dass die Verwendung einer Variablen in einer Funktion namens ist nicht einfach oder gar empfohlen, in der PHP.

So, wie könnte ich dieses Problem lösen?

Hier ist ein Beispiel unten an, um es klar zu sagen:

$prefix = 'news';

function news_custom_type_init()
{
    global $prefix;

    register_post_type($prefix, array(
    'labels' => array(
          'name' => $prefix,
          'singular_label' => $prefix,
          'add_new' => 'Add',
          ...
        ));

        register_taxonomy_for_object_type( 'category', $prefix );
}
add_action('init', $prefix.'_custom_type_init');

Dies ist fast fein und könnte standardisiert werden, wenn ich nur könnte dynamisch benennen Sie die Funktion, um nicht zu schreiben, das Wort "news" vor, aber verwenden Sie das "$prefix" statt.

Könnte dies schön gewesen, aber funktioniert einfach nicht:

$prefix = 'news';

$functionName= $prefix."_custom_type_init";

function $functionName()
{
    global $prefix;

    register_post_type($prefix, array(
    'labels' => array(
          'name' => $prefix,
          'singular_label' => $prefix,
          'add_new' => 'Add',
          ...
        ));

        register_taxonomy_for_object_type( 'category', $prefix );
}
add_action('init', $prefix.'_custom_type_init');

Dass Namen manuell die Funktion irgendwie Niederlage der Zweck von meinen versuchen (vor allem, wenn das Drehbuch bettet Dutzende von Funktionen wie diese).

Was wäre der beste Weg, dies zu tun?

PS: ich habe gegoogelt und "stackoverflowed" viel über diese aber nicht finden, eine funktionierende Lösung, die zu meinen Anforderungen passen und nicht erzeugen eine WordPress-Fehlermeldung.

Danke.

InformationsquelleAutor Baylock | 2013-02-21
Schreibe einen Kommentar