web-dev-qa-db-ja.com

投稿テーマを子テーマから登録解除する

私は子テーマから投稿タイプを登録解除しようとしていますが、それができなかったので、親テーマのfuncions.phpファイルのコードは次のようになります。

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

}

私が私の子供のテーマでやろうとしたのは、このようにinitフックからmc_projectアクションを削除することでした:

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

しかし、優先順位をもっと高い値に設定しても、うまくいきません。

4

あなたの子テーマ関数ファイルで以下を試してください。

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

これは私を助けました。

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

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

クレジットは www.jasonpaul.net に行きます

10
Raivis Dejus

これはもう一つの解決策です、ちょっとハックに耐えます -

私の親テーマでは、私のカスタム投稿タイプは次のように作成されています。

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

それから、私の子供のテーマでは、私は単に関数を空として再宣言します -

function my_post_type() { }

お役に立てれば!これはこのようなフォーラムへの私の最初の貢献ですので、私が破ったフォーマット規則を言い訳してください。

2
Dylan

これは私のために働きました。

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

wordpress 4.9.7で私のために働かない上記の誰もしかしこれは私の問題を解決する

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