【发布时间】:2015-08-28 16:24:09
【问题描述】:
所以对于我的自定义帖子,我需要将用户 ID 放入“作者”参数中,如下所示:
$args = array(
'paged'=>$paged,
'posts_per_page' => 10,
'orderby' => 'date',
'order' => 'DESC',
'author' => ''
);
例如,我在“Ryan”个人资料页面中。网址如下:
http://example.com/?page_id=10&up_username=Ryan
如果我在“Steve”个人资料页面,那么 URL 如下:
http://example.com/?page_id=10&up_username=Steve
每个用户都有自己的ID。
例如,“Ryan”的 ID 为 35,而 Steve 的 ID 为“ID=12”
如果我将 ID 号放在 author 参数中,那么我会根据 ID 号获取帖子。
例如,
我输入'author' => '35',然后我看到了Ryan的帖子。
现在,如何让"author" 参数自动从个人资料页面获取 ID 号?
我得到了一些帮助(如下所示),但它不起作用。
// Default to false in case user can't be found.
$user_id = false;
// Clean username variable before use.
$username = ( ! empty( $_GET['up_username'] ) ) ? sanitize_text_field( $_GET['up_username'] ) : false;
// Check for user ID.
if ( $username && $user = get_user_by( 'slug', $username ) ) {
$user_id = $user->ID;
}
$args = array(
'paged'=>$paged,
'posts_per_page' => 10,
'orderby' => 'date',
'order' => 'DESC',
'author' => $user_id
);
任何帮助将不胜感激!
编辑
通过挖掘,我找到了一些信息:
function id_to_member( $user_id ) {
$res = '';
$nice_url = userpro_get_option('permalink_type');
$user = get_userdata( $user_id );
if ($nice_url == 'ID') $res = $user_id;
if ($nice_url == 'username') $res = $user->user_login;
if ($nice_url == 'name') {
$res = $this->get_fullname_by_userid( $user_id );
}
if ($nice_url == 'display_name'){
$res = userpro_profile_data('display_name', $user_id);
}
if ($res != '')
return $res;
}
和
<a href="#" data-up_username="<?php echo $userpro->id_to_member($user_id); ?>" data-template="view" class="userpro-button secondary"><?php _e('View Profile','userpro') ?></a>
编辑 2
所以,我意识到个人资料页面是由插件生成的(API:http://userproplugin.com/userpro/docs/api.html)
我使用以下方法并能够获取用户数据:
<?php
global $userpro ;
$user_id = userpro_get_view_user( get_query_var('up_username') );
?>
<div class="user">
<?php echo userpro_profile_data( display_name, $user_id ); ?>
</div>
所以,我在“ryan 的页面”中并且能够输出“Ryan”,这意味着我非常接近“提取”用户的 ID。
现在,我需要做的就是从这个信息中找出 ID。
【问题讨论】:
-
你得到了什么?
-
我只是获取页面作者(管理员)的帖子,而不是个人资料用户的帖子。
-
你能帮我输出这个值吗?
$nice_url = userpro_get_option('permalink_type'); -
我得到了“display_name”作为输出 (
<?php echo $nice_url = userpro_get_option('permalink_type');?>) -
您已经收到
$user_id这是他当前的用户ID 吗?如果是,那么你就完成了..只需在get_user_by('id', $user_id)中传递这个$user_id,你就会得到 WP_User 对象。