我正在努力不重复已经被问到的问题,但到目前为止我还没有调试过这个问题 - 我确信这是一件我不想要的小事!
我有一个单项project.php模板,我希望包含一个侧边栏,其中包含所有项目自定义帖子类型作为链接。我似乎只是'post'post_type,而不是我的自定义post_type(项目)
在functions.php中注册自定义帖子类型
function custom_post_type() {
$labels = array(
'name' => _x( 'Project', 'Post Type General Name', 'text_domain' ),
'singular_name' => _x( 'Project', 'Post Type Singular Name', 'text_domain' ),
'menu_name' => __( 'Projects', 'text_domain' ),
'name_admin_bar' => __( 'Projects', 'text_domain' ),
'archives' => __( 'Item Archives', 'text_domain' ),
'attributes' => __( 'Item Attributes', 'text_domain' ),
'parent_item_colon' => __( 'Parent Item:', 'text_domain' ),
'all_items' => __( 'All Projects', 'text_domain' ),
'add_new_item' => __( 'Add New Item', 'text_domain' ),
'add_new' => __( 'Add New', 'text_domain' ),
'new_item' => __( 'New Item', 'text_domain' ),
'edit_item' => __( 'Edit Item', 'text_domain' ),
'update_item' => __( 'Update Item', 'text_domain' ),
'view_item' => __( 'View Item', 'text_domain' ),
'view_items' => __( 'View Items', 'text_domain' ),
'search_items' => __( 'Search Item', 'text_domain' ),
'not_found' => __( 'Not found', 'text_domain' ),
'not_found_in_trash' => __( 'Not found in Trash', 'text_domain' ),
'featured_image' => __( 'Featured Image', 'text_domain' ),
'set_featured_image' => __( 'Set featured image', 'text_domain' ),
'remove_featured_image' => __( 'Remove featured image', 'text_domain' ),
'use_featured_image' => __( 'Use as featured image', 'text_domain' ),
'insert_into_item' => __( 'Insert into item', 'text_domain' ),
'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ),
'items_list' => __( 'Items list', 'text_domain' ),
'items_list_navigation' => __( 'Items list navigation', 'text_domain' ),
'filter_items_list' => __( 'Filter items list', 'text_domain' ),
);
$args = array(
'label' => __( 'Project', 'text_domain' ),
'description' => __( 'Spaceworks projects', 'text_domain' ),
'labels' => $labels,
'supports' => array( ),
'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( 'project', $args );
}
add_action( 'init', 'custom_post_type', 0 );
在functions.php中注册自定义分类法
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( 'project_category', 'project', $args );
}
add_action( 'init', 'my_taxonomies_project', 0 );`
单个项目模板:single-project.php
<?php
get_header();
while ( have_posts() ) : the_post(); ?>
<div class="projects">
<?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>
<?php the_content(); ?>
</div>
<?php
endwhile;
wp_reset_query();
?>
<div class="col-12 col-lg-3 col-xl-3 hidden-lg-up allProjects">
#project loop for mobile
<?php
$tax_query_args = array(
array(
'post_type' => array('post', 'project'),
),
);
$taxQuery = new WP_Query( $tax_query_args );
if ($taxQuery->have_posts())
while ($taxQuery->have_posts() ) : $taxQuery->the_post();
?>
<div class="projectCard">
<a href="<?php echo get_permalink(); ?>">
<p><?php the_title() ?></p>
</a>
</div>
<?php endwhile; wp_reset_query();
get_footer();
?>
有人能发现问题吗?这已经困扰了我几天! 一切顺利
答案 0 :(得分:0)
更改
$tax_query_args = array(
array(
'post_type' => array('post', 'project'),
),
);
到
$tax_query_args = array(
'post_type' => array('post', 'project')
);
快速修改:
使用WP_Query类进行查询,然后调用the_post
方法时,在关闭while语句后使用wp_reset_postdata
。
无需重置查询,因为它没有更改。 :)
答案 1 :(得分:0)
使用项目类别明智地显示项目
<?php
$project_args=array(
'type' => 'project',
'child_of' => 0,
'parent' => 0,
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => 0,
'hierarchical' => 1,
'exclude' => '',
'include' => '',
'number' => '',
'taxonomy' => 'project_category',
'pad_counts' => false
);
$project_my_query = null;
$project_my_query = new WP_Query($project_args);
if( $project_my_query->have_posts() )
{
while ($project_my_query->have_posts()) : $project_my_query->the_post();
?>
<div class="projectCard">
<a href="<?php echo get_the_permalink($post->ID); ?>"><p><?php the_title() ?></p></a>
</div
<?php
endwhile;
}
wp_reset_query($project_my_query);
?>