2016-10-25 4 views
0

私はカスタムポストタイプとそのポストタイプのカスタムタクソノミーを登録するプラグインを開発しています。いずれかのプラグインが無効になったら、どうすればいいですか?カスタム投稿やタクソノミーなどの登録を解除する必要がありますか?私はプラグインの開発に全く新しいです。私はプラグインの非アクティブ化で何をすべきか教えてください。私のカスタム投稿タイプのコードは次のとおりです。プラグインの非アクティブ化時にカスタム投稿またはタクソノミを削除することは必須ですか?

function portolfio_post_type() { 

    $labels = array(
     'name'     => __('Portfolio Post Type', 'Post Type General Name'), 
     'singular_name'   => __('Portfolio Post Type', 'Post Type Singular Name'), 
     'menu_name'    => __('Portfolio'), 
     'name_admin_bar'  => __('Post Type'), 
     'archives'    => __('Portfolio Archives'), 
     'parent_item_colon'  => __('Parent Item:'), 
     'all_items'    => __('All Portfolios'), 
     'add_new_item'   => __('Add New Portfolio'), 
     'add_new'    => __('Add New'), 
     'new_item'    => __('New Portfolio'), 
     'edit_item'    => __('Edit Portfolio'), 
     'update_item'   => __('Update Portfolio'), 
     'view_item'    => __('View Portfolio'), 
     'search_items'   => __('Search Portfolio'), 
     'not_found'    => __('Not found'), 
     'not_found_in_trash' => __('Not found in Trash'), 
     'featured_image'  => __('Featured Image'), 
     'set_featured_image' => __('Set featured image'), 
     'remove_featured_image' => __('Remove featured image'), 
     'use_featured_image' => __('Use as featured image'), 
     'insert_into_item'  => __('Insert into Portfolio'), 
     'uploaded_to_this_item' => __('Uploaded to this Portfolio'), 
     'items_list'   => __('Portfolios list'), 
     'items_list_navigation' => __('Portfolios list navigation'), 
     'filter_items_list'  => __('Filter Portfolios list'), 
    ); 

    $args = array(
     'label'     => __('Portfolio'), 
     'description'   => __('Portfolio Post type to add portfolio of your work'), 
     'labels'    => $labels, 
     'supports'    => array('title', 'editor', 'thumbnail'), 
     'taxonomies'   => array('portfolio_category'), 
     'hierarchical'   => false, 
     'public'    => true, 
     'show_ui'    => true, 
     'show_in_menu'   => true, 
     'menu_position'   => 5, 
     'show_in_admin_bar'  => true, 
     'show_in_nav_menus'  => true, 
     'can_export'   => true, 
     'has_archive'   => true, 
     'exclude_from_search' => false, 
     'publicly_queryable' => true, 
     'capability_type'  => 'post', 
    ); 

    register_post_type('portfolio', $args); 

} 
add_action('init', 'portolfio_post_type', 0); 

私はちょうど私のプラグインファイル内で、このコードを貼り付けていますし、活性化に...それは細かいカスタムポストタイプを作成しますが、私は、プラグインの無効化でこのポストタイプのために何をすべきかわからないのですか?私を助けてくださいするために、任意の1 ...

また

プラグイン開発で何か良いヒントは本当にいただければ幸いです:)

+0

アンインストール:プラグインを追加しましたが、無効にした後は何もしません(ただし、何かしたい場合はCPTメニューやプラグイン関連の管理メニューやオプションを非表示にしますが無効にしているプラ​​グインデータは削除しないでください) すべて削除あなたがそれをしたいのであれば、あなたのCPTデータをクリアするための '$ wpdb'カスタムクエリを試してみてください。 – mlbd

+0

データを削除するためのヒントや、あなたが求めているアクションフックのために???してください – laraib

答えて

0

はい、プラグインのアンインストールですべてのコードを削除する必要があります。そのためにはuninstall.phpファイルを作成し、そのファイルをメインのプラグインディレクトリの中に置くことができます。 uninstall.phpのコードは次のようになります: 注:これは私のプラグインのuninstall.phpファイルです。

if (! defined('WP_UNINSTALL_PLUGIN')) 
exit(); 

function go_delete_now() { 
    global $wpdb; 

    $posts = get_posts(array(
     'numberposts' => -1, 
     'post_type' => 'films', 
     'post_status' => 'any')); 

    foreach ($posts as $post){ 
     wp_delete_post($post->ID, true); 
    } 
} 

go_delete_now(); 

// Set global 
global $wpdb; 
// Delete terms 
$wpdb->query(" 
    DELETE FROM 
    {$wpdb->terms} 
    WHERE term_id IN 
    (SELECT * FROM (
     SELECT {$wpdb->terms}.term_id 
     FROM {$wpdb->terms} 
     JOIN {$wpdb->term_taxonomy} 
     ON {$wpdb->term_taxonomy}.term_id = {$wpdb->terms}.term_id 
     WHERE taxonomy = 'films_category' 
    ) as T 
    ); 
"); 
// Delete taxonomies 
$wpdb->query("DELETE FROM {$wpdb->term_taxonomy} WHERE taxonomy = 'films_category'"); 

注:私の場合は私のポストタイプ名がfilmsで、フィルムのカテゴリはfilms_categoryです。

あなたのニーズに応じて、これらの投稿名と分類名を変更するだけで問題ありません。何かが間違っていたら私に知らせてください。

+0

うわーそれは魅力のように働いた...非常にありがとう、私はuninstall.phpについて考えているが、前に使用されたことはありません...再びありがとう – laraib

0

あなたは最終的にアンインストールアクションで、ドラフトのポストとしてあなたCPTの記事を変換して管理者通知を追加することができます。

+0

私はあなたの言葉を得ることができませんでした、あなたは私のソリューションを提供するために簡単になるように私はすでにすべてのコードスニペットを提供したとして...と動作するようにコードスニペットを提供することができます...私はひどくこれを待っていますしてください... – laraib

関連する問題