永久链接来自自定义帖子类型wordpress的元字段

时间:2014-06-09 12:35:17

标签: wordpress custom-post-type permalinks

我的wordpress实例中有5个自定义字段,它们是布尔值true / false值。

property_type_investment,property_type_office,property_type_rental,property_type_industrial,property_type_land

是否可以为此自定义帖子类型创建一个永久链接,以检查每个元值是否为真 - 如果是这样,会将值附加到连字符的网址?

示例:如果property_type_investment,property_type_office和property_type_land为true。我希望固定链接能够......

/列表/投资办公地/标题后/

这是我的注册帖子类型。

register_post_type( 'properties',
    array(
        'labels' => array(
            'name' => 'Properties',
            'singular_name' => 'Property',
            'add_new' => 'Add New',
            'add_new_item' => 'Add New Property',
            'edit' => 'Edit',
            'edit_item' => 'Edit Property',
            'new_item' => 'New Property',
            'view' => 'View',
            'view_item' => 'View Property',
            'search_items' => 'Search Properties',
            'not_found' => 'No Property found',
            'not_found_in_trash' => 'No Properties found in Trash',
            'parent' => 'Parent Property'
        ),

        'public' => true,
        'rewrite' => array('slug'=>'listings'),
        'menu_position' => 15,
        'supports' => array( 'title', 'editor', 'comments', 'thumbnail', 'custom-fields' ),
        'taxonomies' => array( '' ),
        'has_archive' => true
    )
);

2 个答案:

答案 0 :(得分:2)

你可以重写规则。

function prefix_investment_rewrite_rule() {
    add_rewrite_rule( 'listings/([^/]+)/investment-office-land', 'index.php?listings=$matches[1]&investment-office-land=yes', 'top' );
}

add_action( 'init', 'prefix_investment_rewrite_rule' );

//You should register the query var
function prefix_register_query_var( $vars ) {
    $vars[] = 'investment-office-land';
    return $vars;
}

add_filter( 'query_vars', 'prefix_register_query_var' );

// assign a template
function prefix_url_rewrite_templates() {
     if ( get_query_var( 'investment-office-land' ) && is_singular( 'listings' ) ) {
        add_filter( 'template_include', function() {
            return get_template_directory() . '/single-listings-investment-office-land.php';
        });
    }
}

add_action( 'template_redirect', 'prefix_url_rewrite_templates' );

不要忘记在register_post_type之后刷新重写规则。

flush_rewrite_rules();  

答案 1 :(得分:0)

您可以通过管理面板中的/%category%/%postname%/使用简单方法进行测试 - >设置 - > permalink->定制结构。