web-dev-qa-db-fra.com

Annuler l'enregistrement du type de thème de l'enfant

J'essaie d'annuler l'enregistrement d'un type d'article dans un thème enfant, mais je n'y suis pas parvenu. Le code dans le fichier funcions.php du thème parent ressemble à peu près à ceci:

add_action( 'init', 'mc_projects' );
function mc_projects() {
    register_post_type( 'project', array(
        // Default options....
    ) );

}

Ce que j'ai essayé de faire dans mon thème enfant était de supprimer l'action mc_project du hook init comme ceci:

remove_action('init', 'mc_projects', 11);

Mais cela n'a pas fonctionné, même si je donne la priorité à une valeur plus élevée, est-ce que je fais quelque chose de mal?

4

Essayez ce qui suit dans votre fichier de fonctions de thème enfant.

add_action( 'init', 'remove_mc_projects' );
function remove_mc_projects() {
    remove_action('init', 'mc_projects');
}
4
Brady

Cela m'a aidé.

add_action( 'after_setup_theme','remove_project_custom_init', 100 );

function remove_project_custom_init() {
    remove_action( 'init', 'project_custom_init');
}

Le crédit va à www.jasonpaul.net

10
Raivis Dejus

Voici une autre solution, abeit un peu hackish -

Dans mon thème parent, mon type d'article personnalisé est créé comme suit:

if (!(function_exists('my_post_type')))
{
    function my_post_type()
    {
            ...
    }
}

Ensuite, dans mon thème enfant, je déclare simplement de nouveau la fonction comme vide -

function my_post_type() { }

J'espère que cela t'aides! Ceci est ma première contribution à un forum comme celui-ci, alors veuillez excuser les règles de formatage que j'ai enfreintes.

2
Dylan

Cela a fonctionné pour moi.

function override_parent() {
remove_action( 'init', 'mc_projects', 0 );
}
add_action ('after_setup_theme','override_parent');
1
AnaRita

personne ci-dessus ne travaille pas pour moi dans Wordpress 4.9.7 mais cela résout mon problème

function delete_post_type(){
  unregister_post_type( 'portfolio' );
}
add_action('init','delete_post_type', 100);
1
user3640561