更改WORDPRESS永久链接结构以动态地为自定义帖子类型使用自定义字段值

时间:2013-06-28 08:49:01

标签: php wordpress wordpress-plugin permalinks custom-fields

我使用自定义帖子类型'列表',在这些帖子类型中,我有自定义字段值geocraft_state和geocraft_city。

目前链接如下

site.com/listing/Title-of-listing

但我希望他们像这样

http://site.com/geocraft_state/geocraft_city/Title-of-Listing

因此,如果NA州的某人发布了一个列表,则该链接应如下所示

site.com/NA/Greensboro/Title-of-Listing

他们是否可以使用动态自定义字段值来生成链接?

任何帮助将不胜感激。

由于

2 个答案:

答案 0 :(得分:1)

使用近0编码执行此操作的最快且最简单的方法是停止使用自定义字段,并将所有这些字段设置为Taxonomies \ Categories,层次结构类别,其中geocraft_state将geocraft_city作为子项,并使用永久链接结构作为{ {1}}

有关分类的更多信息,请访问:http://codex.wordpress.org/Taxonomies

答案 1 :(得分:0)

我没有使用自定义字段,而是通过在functions.php中添加这些代码来为位置添加自定义分类。现在我必须弄清楚如何在前端表格中显示它。

function add_custom_taxonomies() {
    // Add new "Locations" taxonomy to Posts
    register_taxonomy('location', 'post', array(
        // Hierarchical taxonomy (like categories)
        'hierarchical' => true,
        // This array of options controls the labels displayed in the WordPress Admin UI
        'labels' => array(
            'name' => _x( 'Locations', 'taxonomy general name' ),
            'singular_name' => _x( 'Location', 'taxonomy singular name' ),
            'search_items' =>  __( 'Search Locations' ),
            'all_items' => __( 'All Locations' ),
            'parent_item' => __( 'Parent Location' ),
            'parent_item_colon' => __( 'Parent Location:' ),
            'edit_item' => __( 'Edit Location' ),
            'update_item' => __( 'Update Location' ),
            'add_new_item' => __( 'Add New Location' ),
            'new_item_name' => __( 'New Location Name' ),
            'menu_name' => __( 'Locations' ),
        ),
        // Control the slugs used for this taxonomy
        'rewrite' => array(
            'slug' => 'locations', // This controls the base slug that will display before each term
            'with_front' => false, // Don't display the category base before "/locations/"
            'hierarchical' => true // This will allow URL's like "/locations/boston/cambridge/"
        ),
    ));
}
add_action( 'init', 'add_custom_taxonomies', 0 );