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?
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');
}
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
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.
Cela a fonctionné pour moi.
function override_parent() {
remove_action( 'init', 'mc_projects', 0 );
}
add_action ('after_setup_theme','override_parent');
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);