Here's how I create my CPT in my parent theme's functions.php:

function my_custom_post_job() {
  register_post_type('job', $args);
add_action('init', 'my_custom_post_job');

I'm trying to unregister this in my child theme's functions.php like so:

add_action('init', 'remove_cpt');
function remove_cpt() {
  remove_action('init', 'my_custom_post_job');

What am I doing wrong?

  • Child theme functions.php is loaded before parent. – Milo Mar 30 '18 at 14:47
  • So that's not doable then? – drake035 Mar 30 '18 at 17:11

you cannot remove a hook when you are in the same hook with the same priority.

a solution is to hook the action with a lower priority

add_action('init', 'remove_cpt', 5);
  • If the parent theme hook is declared without a priority then the default is 10, so the hook to remove it will need to be higher than 10. – Jacob Peattie Mar 31 '18 at 5:40
  • if the function remove_cpt is run after my_custom_post_job, it's too late to remove it. my answer has been tested and is shipped with a mmm's certification of conformity and a 5 years warranty ;) – mmm Mar 31 '18 at 6:01
  • Oh I see remove_cpt is removing the init hook, not detrgistering the post type. – Jacob Peattie Mar 31 '18 at 7:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.