2016-04-20 6 views
2

Ich versuche, einen benutzerdefinierten Beitragstyp, der über ein anderes Thema in Wordpress festgelegt wurde, zu entfernen, jetzt sind alle diese Beiträge einem post_type von portfolio zugewiesen. Nach langem Suchen fand ich den Code unten, aber es scheint nicht zu funktionieren. Ich habe versucht, es sowohl dem neuen Thema als auch den alten Themen functions.php hinzuzufügen.Abmeldung von benutzerdefinierten Beitragstyp aus Wordpress

Ich möchte den post_type entfernen und die Beiträge kategorisiert und als normaler Post angezeigt werden. Ich denke, dass das, was ich tue, korrekt ist, aber es scheint nicht zu funktionieren - ich habe sowohl den Code für den benutzerdefinierten Post-Typ als auch den Code gepostet, um die ihm zugewiesenen Posts zu entfernen.

Code uregister Post Typ

if (! function_exists('unregister_post_type')) : 
function unregister_post_type() { 
global $wp_post_types; 
if (isset($wp_post_types[ 'portfolio' ])) { 
    unset($wp_post_types[ 'portfolio' ]); 
    return true; 
} 
return false; 
} 
endif; 

add_action('init', 'unregister_post_type'); 

Code, der den Posten Typ

register_post_type('portfolio', 
    array(
     'labels' => array(
      'name' => __('Portfolio Items'), 
      'singular_name' => __('Portfolio Item'), 
      'add_new_item' => __('Add New Portfolio Item'), 
      'edit_item' => __('Edit Portfolio Item'), 
      'new_item' => __('New Portfolio Item'), 
      'view_item' => __('View Portfolio Item'), 
      'search_items' => __('Search Portfolio Items'), 
      'not_found' => __('No portfolio items found'), 
      'not_found_in_trash' => __('No portfolio items found in Trash') 
     ), 
     'public' => true, 
     'show_ui' => true, 
     'hierarchical' => false, 
     'menu_position' => 7, 
     //'rewrite' => array('slug' => 'portfolio'), 
     'rewrite' => true, 
     '_built_in' => false, 
     'taxonomies' => array('post_tag','category','portfolio_tag', 'portfolio_category', 'client'), 
     'supports' => array('title','editor','author','thumbnail','excerpt','trackbacks','custom-fields','comments','revisions') 
    ) 
); 

Antwort

0

Versuchen Sie diesen Code registriert (mit einer großen Prioritätszahl)

function custom_unregister_theme_post_types() { 
    global $wp_post_types; 

     if (isset($wp_post_types["portfolio"])) { 
     unset($wp_post_types[ "portfolio" ]); //UPDATED 
     } 

} 
add_action('init', 'custom_unregister_theme_post_types', 20); 

Hinweis: stellen Sie sicher, dass der Name des registrierten Post-Typs portfolio oder portfolios (mit s) ist , Register_post_type ($ post_type, $ args)

AKTUALISIERT:unset($wp_post_types[ "portfolio" ]); //UPDATED

+0

@Nikki Mather Noch nicht? – Meathanjay

+0

Immer noch nicht funktioniert. Ich habe es zu functions.php des neuen Themas und des alten Themas, das den Post-Typ registriert hat, hinzugefügt. –

+0

Es kommt von einem anderen Thema, können Sie bitte 'init' zu' nach_setup_theme' ändern? und wenn von irgendeinem plugin '' plugins_loaded' hook. – Meathanjay

0

Ihr Code gut aussehen! Aber wenn du den post_type abmeldest ... verschwinden die Beiträge darin ... Also melde dich nicht zu früh ab. Bevor Sie die Registrierung des Post-Typs aufheben, migrieren Sie die Posts von post_type in normale Posts. Dieses Plugin ist praktisch für das: https://wordpress.org/plugins/post-type-switcher/

Aber wenn Sie nicht über die Video-Beiträge auf die Standard Beiträge migrieren wollen ... Sie werden Ihre Schleife ändern müssen, um diese Portfolio-Typ Beiträge enthalten:

function add_custom_post_type_to_query($query) { 
    if ($query->is_home() && $query->is_main_query()) { 
     $query->set('post_type', array('post', 'portfolio')); 
    } 
} 
add_action('pre_get_posts', 'add_custom_post_type_to_query'); 

& Vergessen Sie nicht, die Permalinkseite zu besuchen, wenn Sie mit benutzerdefinierten Post-Typen arbeiten, damit WordPress die von Ihnen vorgenommenen Änderungen erkennt.

3

konnte ich es in Wordpress entfernen 4.6.1 mit diesem Code:

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