Wie wird der benutzerdefinierte Beitragstyp nur auf einer bestimmten Seite angezeigt?

Ich habe einen benutzerdefinierten Beitragstyp namens “Projekt” erstellt. Aber wie bekomme ich die benutzerdefinierten Post-Typen nur auf meiner Hauptvorlage angezeigt? Es ist eine einseitige Website und ich möchte nicht, dass der Besucher auf eine zweite Seite geleitet wird.

WordPress v. 3.5.1

 _x( 'Projects', 'post type general name' ), 'singular_name' => _x( 'Project', 'post type singular name' ), 'add_new' => _x( 'Add New', 'project' ), 'add_new_item' => __( 'Add New Project' ), 'edit_item' => __( 'Edit Project' ), 'new_item' => __( 'New Project' ), 'all_items' => __( 'All Projects' ), 'view_item' => __( 'View Project' ), 'search_items' => __( 'Search Projects' ), 'not_found' => __( 'No projects found' ), 'not_found_in_trash' => __( 'No projects found in the Trash' ), 'parent_item_colon' => '', 'menu_name' => 'Projects' ); $args = array( 'labels' => $labels, 'description' => 'Holds my projects and project specific data', 'public' => true, 'menu_position' => 5, 'supports' => array( 'title','editor', 'excerpt'), 'has_archive' => false, 'rewrite' => array('slug'=>'/','with_front'=>false), ); register_post_type( 'project', $args ); } add_action( 'init', 'my_custom_post_project' ); function my_taxonomies_project() { $labels = array( 'name' => _x( 'Project Categories', 'taxonomy general name' ), 'singular_name' => _x( 'Project Category', 'taxonomy singular name' ), 'search_items' => __( 'Search Project Categories' ), 'all_items' => __( 'All Project Categories' ), 'parent_item' => __( 'Parent Project Category' ), 'parent_item_colon' => __( 'Parent Project Category:' ), 'edit_item' => __( 'Edit Project Category' ), 'update_item' => __( 'Update Project Category' ), 'add_new_item' => __( 'Add New Project Category' ), 'new_item_name' => __( 'New Project Category' ), 'menu_name' => __( 'Project Categories' ), ); $args = array( 'labels' => $labels, 'hierarchical' => true, ); register_taxonomy( 'product_category', 'project', $args ); } add_action( 'init', 'my_taxonomies_project', 0 ); 

Ich habe jetzt den Code in index.php geändert:

   
'project' ); $projects = new WP_Query($args); if ($projects->have_posts()) { while ($projects->have_posts()) { $projects->the_post(); the_title(); get_the_content(); } } ?>

Der Titel wird aus irgendeinem Grund mit einer Höhe von 0px eingefügt. Handelt es sich um den Code oder ist das eine ganz andere Sache? Auch der Inhalt des Editors Metabox wird nicht angezeigt.

Solutions Collecting From Web of "Wie wird der benutzerdefinierte Beitragstyp nur auf einer bestimmten Seite angezeigt?"

Sehr schwierig zu beantworten angesichts der bereitgestellten Informationen, aber Sie möchten wahrscheinlich …

 'has_archive' => false, 'rewrite' => array('slug'=>'/','with_front'=>false), 

… als Teil Ihrer Argumente, wenn Sie den Post-Typ registrieren und dann können Sie den Post-Typ der Haupt-Abfrage für diese Startseite / Startseite hinzufügen …

 function add_cpt_to_home($qry) { if (is_front_page() || is_home()) { $post_type = (array)$qry->get('post_type'); $post_type[] = 'post'; $post_type[] = 'project'; $post_type = array_unique(array_filter($post_type)); $qry->set('post_type',$post_type); } } add_action('pre_get_posts','add_cpt_to_home'); 

Oder schreibe eine sekundäre Abfrage, um diesen post_type zu ziehen.

 $args = array( 'post_type' => 'project' ); $projects = new WP_Query($args); if ($projects->have_posts()) { while ($projects->have_posts()) { $projects->the_post(); the_title(); // etc } } 

Nicht sehr gut getestet, aber wie gesagt, es ist schwer zu beantworten angesichts der bereitgestellten Informationen.