无法在wordpress中查看新帖子类型

时间:2017-01-09 20:07:21

标签: wordpress

我使用显示here的示例创建了自定义帖子类型。就我而言,我正在为招聘广告创建职业发布类型。

一切似乎都很好。我的职业生涯部分出现在仪表板中,我可以创建招聘广告,其中/职业/职称是他们的永久链接。正如我所愿。但我无法查看它们。如果我点击视图或直接转到网址,我会收到404。

这是使用xampp和bitnami wordpress的新本地安装。它基本上是一个默认安装,我之前添加了一些插件,但出于调试目的,我已经禁用了所有插件。

有什么想法吗?

function create_posttype() {
  $args = array(
    'labels' => array(
      'name' => __('Careers'),
      'singular_name' => __('Careers'),
      'all_items' => __('All Job Postings'),
      'add_new_item' => __('Add New Job Posting'),
      'edit_item' => __('Edit Job Posting'),
      'view_item' => __('View Job Posting')
    ),
    'public' => true,
    'has_archive' => true,
    'rewrite' => array('slug' => 'careers'),
    'show_ui' => true,
    'show_in_menu' => true,
    'show_in_nav_menus' => true,
    'capability_type' => 'post',
    'supports' => array('title', 'editor', 'thumbnail'),
    'exclude_from_search' => false,
    'menu_position' => 6,
    'has_archive' => true,
    'menu_icon' => 'dashicons-format-status'
    );
  register_post_type('careers', $args);
}
add_action( 'init', 'create_posttype');

function my_add_meta_box(){
    add_meta_box( 'job-details', 'Job Details', 'my_meta_box_cb', 'Careers', 'normal', 'default');
}

function my_meta_box_cb($post){
    $values = get_post_custom( $post->ID );
    $salary = isset( $values['salary'] ) ? esc_attr( $values['salary'][0] ) : "";
    $salary_unit = isset( $values['salary_unit'] ) ? esc_attr( $values['salary_unit'][0] ) : "hr";
    wp_nonce_field( 'job_details_nonce_action', 'job_details_nonce' );
    $html = '';
    $html .= '<label>Salary</label>';
    $html .= '<input type="number" name="salary" id="salary" style="margin-top:15px; margin-left:9px; margin-bottom:10px;" value="'. $salary .'" />';
    $html .= '<label> / </label>';
    $html .= '<input type="text" list=salary_units name="salary_unit" id="salary_unit" style="margin-left:9px; margin-top:15px;" value="'. $salary_unit .'" />';
    $html .= '<datalist id=salary_units><option>hr<option>day<option>month<option>annum</datalist>';
    echo $html;
}

function my_save_meta_box($post_id){
    // Bail if we're doing an auto save
    if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;

    // if our nonce isn't there, or we can't verify it, bail
    if( !isset( $_POST['job_details_nonce'] ) || !wp_verify_nonce( $_POST['job_details_nonce'], 'job_details_nonce_action' ) ) return;

    // if our current user can't edit this post, bail
    if( !current_user_can( 'edit_post' ) ) return;

    if(isset( $_POST['salary'] ) )
        update_post_meta( $post_id, 'salary', $_POST['salary']);

    if(isset( $_POST['salary_unit'] ) )
        update_post_meta( $post_id, 'salary_unit', $_POST['salary_unit']);
}
add_action( 'add_meta_boxes', 'my_add_meta_box' );
add_action( 'save_post', 'my_save_meta_box' );

1 个答案:

答案 0 :(得分:1)

当您注册新的帖子类型时,您需要刷新重写规则。

要做到这一点,请转到设置 - &gt;固定链接并按保存。

如果你正在构建一些你打算分发的东西,那么你想要自动刷新重写规则。有关详细信息,请参阅:https://codex.wordpress.org/Function_Reference/register_post_type#Flushing_Rewrite_on_Activation