删除作者插件并替换为用户名

时间:2012-10-04 作者:Jason Davis

我复习了所有相关的问题,但没有一个能完全解决这个问题,所以我在这里发帖,希望专业人士知道如何处理这个问题。我想更改author slug,完全像这样删除/author/这个词;

目前example.com/author/username

希望example.com/username

此外,我希望所有与作者相关的帖子都像:

example.com/username/post-title
URl结构类似于a.)wpmu或b.)cpt,而不实际构建。

添加更多上下文。我正在创建一个多作者博客,用户可以在其中创建、发布和共享独立页面(作者页面)。所有作者创建的所有帖子都将包含在主循环中(目前)。

要实现这一目标,我的最佳方案和最差方案是什么?

2 个回复
SO网友:kaiser

只是一个想法:使用一个MU安装并给博客命名作者的名字(使用子目录)。通过这种方式,你应该更接近于你想要实现的目标。

这意味着您将把作者姓名附加到原始域中,当您访问该域时,您将看到他们的博客页面=作者帖子。

http://example.com - main domain
http://example.com/hans
这种解决方案可以避免任何编程。

SO网友:OS.

实现这一点的一种方法(您必须愿意并能够破解WP)是:

第1部分-作者发布新帖子后,您可以在数据库中显式更改帖子GUID。下面是一个粗略的示例/大纲:

$wpdb->update( 
        $table_name, 
        array(                          
            \'guid\' => (whatever url you want)
        ),
        array( \'id\' =>  (post ID))
    );
$table\\u name是特定作者的表名(例如网络中第12个博客的“wp\\u 12\\u posts”)

第2部分-添加/编辑索引。在主题中使用php来处理自定义URL。下面是一个大纲:

//construct the complete URL of the request 
    $guid = \'http://\' . get_current_site()->domain . $_SERVER["REQUEST_URI"];
    //check if DB contains a row with this guid
    $post = $wpdb->get_row("SELECT * FROM " . $table_name . " WHERE guid = \'" . $guid . "\'");
基本上,您在这里所做的是在WP以“通常”的方式处理事情之前,查找您之前显式设置的GUID。如果$post不是空的,您现在可以从那里获取它。

我正在写一篇完整的文章,概述我们在Litefort为我们正在创建的服务实现的这个解决方案,看看开发人员。莱特福特。com了解更多信息。

结束

相关推荐

WordPress:使用Category Slug通过MySQL查询获取类别ID

基本上,我有一个存储了类别slug的cookie,我想使用这些数据查询数据库并返回类别的ID。我是mysql新手,这似乎是一个高级查询,可能需要使用连接,如果您有任何帮助或指导,我将不胜感激。非常感谢。参考号:http://codex.wordpress.org/File:WP3.0-ERD.png