如何根据某种分类法更改自定义帖子类型所在的页面

时间:2017-01-13 22:25:51

标签: wordpress

首先,如果有任何愚蠢行为,我很抱歉,这是我的第一个wordpress网站。

我需要用户能够创建项目'通过仪表板。所有项目的列表' (很像博客)会出现在' Projects'这个网站的页面。

我通过将以下代码添加到我的子主题的functions.php中来创建自定义帖子类型:

function project_init() {

$labels = array(
'name' => _x( 'Projects','post type general name'),
'singular_name' => _x( 'Project', 'post type singular name'),
'all_items' => __('All Projects'),
'add_new' => _x('Add New Project', 'Projects'),
'add_new_item' => __('Add New Project'),
'edit_item' => __('Edit Project'),
'new_item' => __('New Project'),
'view_item' => __('View Project'),
'search_items' => __('Search in Projects'),
'not_found' =>  __('No Projects found'),
'not_found_in_trash' => __('No Projects found in trash'),
'parent_item_colon' => ''
);



$args = array(
'label' => 'projects',
  'labels' => $labels,
    'public' => true,
    'show_ui' => true,
    'capability_type' => 'post',
    'has_archive' => true,
    'hierarchical' => false,
    'rewrite' => array('slug' => 'projects'),
    'query_var' => true,
    'menu_icon' => 'dashicons-hammer',
    'taxonomies' => array( 'category' ),
    'supports' => array(
        'title',
        'editor',
        'excerpt',
        'trackbacks',
        'custom-fields',
        'comments',
        'revisions',
        'thumbnail',
        'author',
        'page-attributes',)
    );
register_post_type( 'projects', $args );
}
add_action( 'init', 'project_init', 0 );

到目前为止,CPT工作正常,我所做的所有测试项目都出现在项目页面上。

问题:

现在我希望有2个不同的页面。 “当前项目”的一个页面,以及“完成”的另一个页面'项目'

'当前项目'将列在' Projects'页面.......但是当用户更改某个当前项目的内容时,如类别,标签或其他内容(我不确定该机制应该是什么),并且他们会从'当前项目'对于已完成的项目',该项目元素将从其当前页面中删除,并显示在已完成的项目中。页。

对我来说,最好的方法是什么?我已经尝试添加"已完成"的类别。和"当前"到不同的项目,然后尝试将其链接到菜单项或页面,但我无法使其工作。

我非常感谢任何人可以给予的任何帮助或建议!谢谢!

1 个答案:

答案 0 :(得分:0)

这就是我的意思:

拳头创建模板文件。我在模板上加上单词模板前缀:ie:template_projects_completed.php要将其指定为模板,您需要在文件顶部添加一段注释文本,以便Wordpress知道它的模板:

<?php
/* Template Name: Projects Template  */
?>

然后在Wordpress仪表板中创建一个新页面,并在模板下拉列表中选择您的模板作为要使用的模板。

然后在新创建的php文件中将其放入其中。

<?php
//help code
$posts = new WP_Query( array(
    'post_type' => 'projects', // your custom post type
    'category_name'=>'your_category', // Whatever you call your category ie. completed
    'posts_per_page' => 10,
    'orderby' => 'date', // Purely optional - just for some ordering
    'order' => 'DESC' // Ditto
) );

 if ($posts -> have_posts()) : while ($posts->have_posts()) : $posts->the_post(); ?>
     <ul>
         <li><?php the_content(); ?></li>
         <!-- all the other pieces you want.. ie the_author() the_title() ect.. ect..-->
     </ul>

<?php endwhile; endif; ?>

您当然应该在适当的位置包含页眉和页脚: get_header()和get_footer()