更改帖子永久链接结构(WordPress)

时间:2017-05-08 20:37:19

标签: php wordpress url

我想将默认的帖子永久链接结构从(example.com/post-name)更改为(example.com/author_firstname-author_lastname/post-name)。

我尝试添加一个新的重写标记,我可以在自定义永久链接结构中使用该标记在URL中使用作者的名字和姓氏,但它不起作用(404错误页面)。

add_filter('post_link', 'pauthor_permalink', 10, 3);
add_filter('post_type_link', 'pauthor_permalink', 10, 3);

function pauthor_permalink($permalink, $post_id, $leavename) {
    add_rewrite_tag( '%pauthor%', '(.+)', 'pauthor=' );
    if (strpos($permalink, '%pauthor%') === FALSE) return $permalink;

    // Get post
        $post = get_post($post_id);
        if (!$post) return $permalink;

        // Get Author Data
        $post_author = get_post_field( 'post_author', $post->ID );
        $user_info = get_userdata($post_author);
        $first_name = $user_info->first_name;
        $last_name = $user_info->last_name;
        $pauthor = $first_name.'-'.$last_name;


    return str_replace('%pauthor%', $pauthor, $permalink);
}   

任何帮助!?

1 个答案:

答案 0 :(得分:0)

更改wordpress中的固定链接结构可以在没有任何类型的PHP的情况下完成。

请参阅设置>固定链接

https://codex.wordpress.org/Settings_Permalinks_Screen

您要查找的结构似乎是/%author%/%postname%/

可在此处找到更多标签: https://codex.wordpress.org/Using_Permalinks#Structure_Tags

创建自定义标签

您可以通过使用'rewrite' => true创建新分类法来创建自定义代码,例如:

add_action( 'init', 'my_rating_init' );

function my_rating_init() {
    if ( ! is_taxonomy( 'rating' ) ) {
        register_taxonomy( 
            'rating', 
            'post', 
            array( 
                'hierarchical' => FALSE, 
                'label' => __( 'Rating' ),  
                'public' => TRUE, 
                'show_ui' => TRUE,
                'query_var' => 'rating',
                'rewrite' => true 
            ) 
        );
    }
}

来源:https://wordpress.stackexchange.com/questions/168946/add-more-structure-tag-to-permalink