单个页面不适用于自定义帖子类型

时间:2013-04-09 作者:Rinoleti

我使用以下代码创建了一个自定义帖子类型:

add_action(\'init\', \'create_trans_career\');

function create_trans_career() {
    //Arguments to create post type.
    $args = array(
        \'labels\' => array(
            \'name\' => __(\'Career\', \'trans\'),
            \'singular_name\' => __(\'Career\', \'trans\'),
            \'add_new\' => __(\'Add New\', \'trans\'),
            \'add_new_item\' => __(\'Add New Career Item\', \'trans\'),
            \'edit\' => __(\'Edit\', \'trans\'),
            \'edit_item\' => __(\'Edit Career Item\', \'trans\'),
            \'new_item\' => __(\'New Career\', \'trans\'),
            \'view\' => __(\'View\', \'trans\'),
            \'view_item\' => __(\'View Career\', \'trans\'),
            \'search_items\' => __(\'Search Career\', \'trans\'),
            \'not_found\' => __(\'No Career item found\', \'trans\'),
            \'not_found_in_trash\' => __(\'No Career item found in Trash\', \'trans\'),
        ),
        \'public\' => true,
        \'show_ui\' => true,
        \'capability_type\' => \'post\',
        \'hierarchical\' => true,
        \'has_archive\' => true,
        \'menu_icon\' => get_bloginfo(\'template_directory\'). \'/images/career-icon.png\',
        \'supports\' => array(\'title\', \'editor\', \'thumbnail\'),
        \'rewrite\' => array(\'slug\' => \'career\', \'with_front\' => false),
    );

    //Register type and custom taxonomy for type.
    register_post_type( \'career\' , $args );
}
我还创建了一个页面(single career.php):

<?php while ( have_posts() ) : the_post(); ?>
            <h2 class="page-title"><?php the_title(); ?></h2>
            <hr />
            <?php the_content(\'Read More...\'); ?>
            <a href="<?php bloginfo(\'wpurl\'); ?>/career" title="<?php _e(\'Back to jobs listings\', \'trans\'); ?>" class="back-to-jobs"><?php _e(\'Back to jobs listings\', \'trans\'); ?></a>
            <?php endwhile;  ?>
。。以及用于列出帖子的页面模板:

$mypost = array( \'post_type\' => \'career\', \'posts_per_page\' => 10, \'paged\' => $pagedNum );
            $loop = new WP_Query( $mypost ); ?>
            <?php while ( $loop->have_posts() ) : $loop->the_post();?>
            <tr id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                <td><?php the_title(); ?></td>
                <td><?php echo $location; ?></td>
                <td><?php echo $close_date; ?></td>
                <td><a href="<?php the_permalink(); ?>" title="<?php _e(\'Details\', \'trans\'); ?>"><?php _e(\'&gt; Details\', \'trans\'); ?></a></td>
                <td class="apply-now"><a data-title="<?php the_title(); ?>" data-location="<?php echo $location; ?>" href="#apply_<?php the_ID(); ?>" title="<?php _e(\'Apply Now\', \'trans\'); ?>" class="career-apply"><?php _e(\'Apply Now\', \'trans\'); ?></a></td>
            </tr>
            <?php endwhile;  ?>
我使用上面的模板创建了一个包含作业的页面。。我看到了所有的帖子。。但当我打开一个页面时,我收到404错误。问题出在哪里?

2 个回复
SO网友:welbyaudry

将此添加到您的函数中。php:

/* Flush rewrite rules for custom post types. */
add_action( \'after_switch_theme\', \'bt_flush_rewrite_rules\' );

/* Flush your rewrite rules */
function bt_flush_rewrite_rules() {
     flush_rewrite_rules();
}
然后将主题更改为其他主题,然后将其重新设置为自定义主题。这将刷新重写规则并使自定义帖子正常工作。

SO网友:nn alam

这里似乎有很多不同的问题和潜在的解决方案,但在尝试了所有其他建议的解决方案后,我发现了一些有效的方法。添加:

flush\\u rewrite\\u rules();

调用register\\u post\\u type之后。

结束

相关推荐

如何为特定类别创建一个Single.php?

我正在尝试创建一个。我的网站上特定类别的php文件。而不是加载单个。php文件我希望WP在名为single-category-53的文件中返回该类别。php(实际类别id=53)。我允许在网站上选择多个类别,在Hikari的permalink插件的帮助下,我们为permalink选择了合适的类别。由于这个原因,我无法引用类别的任何内置函数,因为Wordpress默认为数字顺序。下面的代码通过if工作($catp==53)。。。我已经证实了这一点。问题似乎在于将单一类别称为53。php文件,或者我没有正确执