动态创建一次性帖子,添加到主查询,不插入帖子(用户配置文件视图)

时间:2017-01-19 作者:Rachel

我正在尝试创建自己的用户配置文件页面。当有人要求时example.com/profile/username, 我想查询用户表中的用户username (=slug)并显示结果。

理想情况下,我会将主查询更改为仅查询用户表并返回此结果。这似乎不可能(WP_QueryWP_User_Query 完全分开)。对的

我知道not 想要:

重定向到页面或其他任何内容

  • 破解我的模板
  • 为每个用户插入帖子/页面
  • 安装任何插件

    Current Idea

    似乎唯一避免重定向并让我的模板适用于真正的404的方法是在parse_query 设置is_404false 当我的配置文件路径匹配时(通过REQUEST_URIpreg_match).

    为了避免黑客攻击我的模板,我希望尽快执行我的用户查询,并将结果添加到主查询中。我正在考虑执行我的用户查询,并简单地将结果转换为动态帖子,并将其作为主查询的唯一结果。这似乎是将视图导入Wordpress的最干净的方法。但是,我不想将此帖子插入我的表中。

    我是否可以创建一篇文章并将其作为主查询结果传递给模板,而不将其保存在其他位置,或者我是否需要插入并删除它?将等待到parse_query 导致问题?

    有更好的方法吗?

  • 1 个回复
    最合适的回答,由SO网友:Pedro Coitinho 整理而成

    据我所知,您正在尝试更改用户的永久链接结构,因此yoursite.com/author/yourusername 它会显示yoursite/profile/yourusername?

    您可以将重写规则添加到永久链接结构以进行更改:

    function yourdomain_user_rewrite() {
        global $wp_rewrite;
        $wp_rewrite->author_base = \'profile\';
        $wp_rewrite->author_structure = \'/\' . $wp_rewrite->author_base . \'/%author%\';
    }
    
    add_action( \'init\', \'yourdomain_user_rewrite\' );
    
    然后Worpdress将自动加载author.php 当你的网站/个人资料/XXXX被查询时,你的主题。不涉及复杂的查询!

    这就是你要找的吗?

    相关推荐

    Get users that likes the post

    我有一个类似ajax的帖子系统,当用户喜欢帖子时,系统会在帖子中添加一个帖子元,并将其命名为(post\\u liked\\u users)。post\\u likes\\u users元值示例:a:1:{s:6:\"user-1\";i:1;}现在,如何才能获得喜欢该帖子的用户?注意:我不能像杰克·约翰逊那样只使用foreach答案,我必须使用WP\\u User\\u Query或WP\\u Query,因为我要使用offest和number。