Ich mag würde die Schaffung von „Custom Beitrag Typen“ in Wordpress vereinfachen, da es mühsam ist durch das gleiche Skript zu gehen und all benutzerdefinierte Post Typnamen Instanzen manuell ändern, immer und immer wieder.Dynamische Funktionsname in PHP
Es ist ziemlich einfach zu erreichen, indem Sie eine Variable erstellen, die den CPT-Namen enthält, und sie überall dort verwenden, wo sie benötigt wird. Auf diese Weise muss ich nur die Variable am Anfang des Skripts deklarieren, und das sollte sich um den Rest kümmern.
Das einzige Problem ist, dass, um es funktionieren zu lassen, ich auch den CPT-Namen vor jeder Funktion im Skript voranstellen muss und es scheint, dass die Verwendung einer Variablen in einem Funktionsnamen nicht einfach oder sogar in PHP empfohlen wird .
Also, wie könnte ich das lösen? Hier
ist ein Beispiel unten deutlich zu machen:
$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');
Das ist fast in Ordnung und kann standardisiert werden, wenn ich nur könnte dynamisch die Funktion, um umbenennen nicht das Wort „news“ schreiben zu müssen in davor aber verwenden Sie stattdessen das "$ Präfix".
Dieses schön gewesen, hätte aber einfach nicht funktioniert:
$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');
manuell die Funktion irgendwie den ursprünglichen Zweck meines Versuch vereiteln (vor allem, wenn das Skript wie diese Dutzende von Funktionen bettet) zu nennen Having .
Was wäre der beste Weg, dies zu tun?
PS: Ich googeln und „stackoverflowed“ viel darüber, aber fand keine funktionierende Lösung, die meine Bedürfnisse passen und nicht eine Wordpress-Fehlermeldung.
Vielen Dank.
zu verwenden, ist mir nicht sicher, nutzen könnte bin ich mir klar gemacht (oder vielleicht habe ich nicht verstehe deinen Standpunkt). Ihr Skript prüft, ob die Funktion bereits existiert und deshalb sollte die Funktion von Anfang an manuell erstellt worden sein, oder? Ich versuche nicht, eine existierende Funktion dynamisch zu "rufen", sondern genau diese Funktion dynamisch zu "erstellen". Um es einfach zu machen, möchte ich in meinem obigen Skript nur das Wort "Nachrichten" von überall löschen, außer von der ersten Anweisung und das Skript zum Laufen bringen. Wenn ich dich nicht verstanden habe, tut es mir leid. – Baylock
Wenn ich richtig verstehe, möchten Sie eine Reihe von Funktionen haben, wie "news_something" und "blog_something" usw. Rufen Sie dann dynamisch den benötigten an. Der von mir bereitgestellte Code sollte in init() aufgerufen werden und die aufzurufende Funktion auswählen. Wenn Sie möchten, dass die gleiche Funktion von mehreren Standorten aufgerufen wird, müssen Sie die Funktionen erstellen und sie die gleiche Funktion aufrufen, da sie in PHP registriert werden müssen. – hexblot
Vielen Dank für Ihre Hilfe Hexbot. Ich habe meine obige Nachricht bearbeitet, um mein Ziel mit einem nicht funktionierenden Beispiel besser zu verstehen. – Baylock