Dynamique nom de la fonction en php

Je voudrais simplifier la création de "Custom Post Types" dans WordPress comme il est fastidieux de passer par le même script et changer toutes les custom post type nom instances manuellement.

C'est assez simple à réaliser en créant une variable contenant le CPT nom et l'utiliser partout où elle est nécessaire. De cette façon, Tout ce que j'ai à faire est de déclarer la variable dans le début du script et que cela devrait prendre soin du reste.

Le seul problème est que, pour le faire fonctionner, j'ai aussi besoin de préfixer le CPT nom en face de chaque fonction dans le script, et il semble que l'utilisation d'une variable dans une fonction, le nom n'est pas facile, ni même recommandé dans PHP.

Alors, comment pourrais-je résoudre ce problème?

Voici un exemple ci-dessous pour faire clair:

$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');

C'est presque bien et peut être standardisée, si seulement je pouvais dynamiquement renommer la fonction, afin de ne pas avoir à écrire le mot "news" en face d'elle, mais utiliser le "$prefix" à la place.

Cela aurait pu être sympa, mais juste ne fonctionne pas:

$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');

Ayant pour nom manuellement la fonction un peu de la défaite de l'objectif d'origine de ma tentative (en particulier lorsque le script intègre des dizaines de fonctions comme celle-ci).

Quelle serait la meilleure façon de le faire?

PS: j'ai googlé et "stackoverflowed" beaucoup de choses à ce sujet mais n'ai pas trouvé de solution qui correspondent à mes besoins et ne génère pas d'WordPress message d'erreur.

Merci.

OriginalL'auteur Baylock | 2013-02-21