2013-08-09 3 views
0

J'ai un blog avec un type de poste personnalisé inited comme:type Wordpress personnalisés Poster Archives Edition

register_post_type('type', 
    array(
     'labels' => array(
      'name' => __('Types'), 
      'singular_name' => __('Type') 
     ), 
     'public' => true, 
     'has_archive' => true, 
    ) 
); 

Évidemment, cela est enveloppé dans une fonction appelée par l'action init. Le problème est que ce type de message est plein de messages, plus de 1K, mais sur la page d'archive (domain.com/type) il n'y a rien de visible. J'ai essayé de vérifier la requête, mais la requête apparaît comme NULL. Quelqu'un at-il une solution fiable? PS: c'est pourquoi je déteste wordpress. Ne fonctionne jamais correctement.

Tags: wordpress-brisé à nouveau, wordpress-succions, wordpress-i-haine-vous

extrait complet:

function cp_init_types() { 
    register_post_type('nursing-home', 
     array(
      'labels' => array(
       'name' => __('Nursing Homes'), 
       'singular_name' => __('Nursing Home') 
      ), 
      'public' => true, 
      'has_archive' => true, 
      'rewrite' => array('slug' => 'nursing-homes', 'with_front' => true), 
      /*'supports' => array('title', 'editor', 'custom-fields', 'thumbnail'), 
      'publicly_queryable' => true, 
      'exclude_from_search'=> false, 
      'taxonomies' => array('category','post_tag'),*/ 
     ) 
    ); 

    flush_rewrite_rules(false); 
} 

function add_my_post_types_to_query($query) { 
    if(is_category() || is_tag() || is_home() && empty($query->query_vars['suppress_filters'])) { 
     $post_type = get_query_var('post_type'); 
     if($post_type) { 
      $post_type = $post_type; 
     } 
     else { 
      $post_type = array('post','nursing-home','nav_menu_item'); 
     } 
     $query->set('post_type', $post_type); 
     return $query; 
    } 

    return $query; 
} 

// Show posts of 'post', 'page' and 'movie' post types on home page 
add_action('pre_get_posts', 'add_my_post_types_to_query'); 
add_action("init", "cp_init_types"); 
+0

"J'ai essayé de vérifier la requête, mais la requête s'affiche comme NULL." Pouvez-vous ajouter ce que vous avez essayé à votre réponse? – phil

+0

Phil, c'est exactement mon problème. Ajout du code complet ci-dessus. – zquintana

Répondre

0

Avez-vous pris note de ce à partir du manuel:

De la même manière, les messages uniques et leurs archives peuvent être affichés en utilisant les fichiers templates single.php et archive.php, respectivement,

Les messages uniques d'un type de message personnalisé utiliseront single- {post_type} .php et leurs archives utiliseront archive- {post_type} .php où {post_type} est l'argument $ post_type de la fonction register_post_type().

http://codex.wordpress.org/Post_Types

0

Votre indiquant explicitement que vous voulez seulement une chasse douce des règles de réécriture. Pour afficher les types de publications personnalisés, vous devez disposer de certaines règles de réécriture dans le fichier .htaccess. En utilisant un disque dur, vous pouvez avoir WordPress ajouter ceux pour vous. Supprimez le paramètre false de l'appel.

flush_rewrite_rules(); // pass no parameters and it defaults to true 
Questions connexes