Домой Wp-Recall WP-Recall: Вопросы и ответы Как получить id пользователя в личном кабинете?
7ответ(ов) в теме
vasiliy.petrov
не в сети 6 лет
На сайте с 21.03.2017
Участник
Тем 44
Сообщения 151
1
21:51

Как wp-recall выводит посты пользователя в личном кабинете? Как он определяет какой этой пользователь?

0
Андрей CS
не в сети 15 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16854
2
23:20

Стандартный функционал ВП,
текущий пользователь - global $user_ID

0
Preci
не в сети 2 дня
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1643
3
08:54

Если посты в личном кабинете, то, мне кажется, он имеет ввиду узнать пользователя чей это кабинет, т.е. global $user_LK;

0
vasiliy.petrov
не в сети 6 лет
На сайте с 21.03.2017
Участник
Тем 44
Сообщения 151
4
11:24

Да, скорее всего global $user_lk.

В posts-list код, который выводит записи пользователя в ЛК:

<?php global $post,$posts,$ratings; ?>


<table class="publics-table-rcl">

	<tr>
		<td><?php _e('Date','wp-recall'); ?></td>
		<td><?php _e('Title','wp-recall'); ?></td>
		<td><?php _e('Status','wp-recall'); ?></td>
	</tr>

	<?php foreach($posts as $postdata){ ?>

	

		<?php foreach($postdata as $post){ setup_postdata($post); ?>

			<?php if($post->post_status=='pending') $status = '<span class="status-pending">'.__('to be approved','wp-recall').'</span>';
			elseif($post->post_status=='trash') $status = '<span class="status-pending">'.__('deleted','wp-recall').'</span>';
                        elseif($post->post_status=='draft') $status = '<span class="status-draft">'.__('draft','wp-recall').'</span>';
			else $status = '<span class="status-publish">'.__('published','wp-recall').'</span>'; ?>

			<tr>

				<td width="50"><?php echo mysql2date('d.m.y', $post->post_date); ?></td>

				<td>

				<?php echo ($post->post_status=='trash')? $post->post_title: '<a target="_blank" href="'.$post->guid.'">'.$post->post_title.'</a>'; ?>

				<?php if(function_exists('rcl_format_rating')) {
					$rtng = (isset($ratings[$post->ID]))? $ratings[$post->ID]: 0;
					echo rcl_rating_block(array('value'=>$rtng));
				} ?>
				<?php $content = ''; echo apply_filters('content_postslist',$content); ?>

				</td>
				<td><?php echo $status ?></td>

			</tr>
		<?php } ?>

	<?php } ?>

</table>

Как это работает вообще? Откуда он знает, что надо выводить посты именно этого пользователя. user_lk, user_id нет...

0
Вова (Otshelnik-Fm)
не в сети 15 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18642
5
11:35

Смотрите в какой функции идет подключение этого файла.
Вам уже дали ответ global $user_LK; , а не $user_lk

Вы не можете просматривать опубликованные ссылки

- все глобальные переменные плагина и их описание тут

0
vasiliy.petrov
не в сети 6 лет
На сайте с 21.03.2017
Участник
Тем 44
Сообщения 151
6
13:26

rcl_postlist.php:

<?php

class Rcl_Postlist {

    public $post_type;
    public $type_name;
    public $in_page = 24;
    public $offset;

    function __construct( $user_id, $post_type, $type_name ){

        $this->post_type = $post_type;
        $this->type_name = $type_name;
        $this->user_id = $user_id;
        $this->offset = 0;
    }

    function get_postlist_block(){

        $posts_block = '<div id="'.$this->post_type.'-postlist" class="">';
        $posts_block .= $this->get_postslist();
        $posts_block .= '</div>';
        
        return $posts_block;
    }

    function get_postslist_table(){

        global $wpdb,$post,$posts,$ratings;

        $ratings = array();
        $posts = array();

        $posts[] = $wpdb->get_results($wpdb->prepare("SELECT * FROM ".$wpdb->base_prefix."posts WHERE post_author='%d' AND post_type='%s' AND post_status NOT IN ('trash','auto-draft') ORDER BY post_date DESC LIMIT $this->offset, ".$this->in_page,$this->user_id,$this->post_type));

        if(is_multisite()){
            $blog_list = get_blog_list( 0, 'all' );

            foreach ($blog_list as $blog) {
                $pref = $wpdb->base_prefix.$blog['blog_id'].'_posts';
                $posts[] = $wpdb->get_results($wpdb->prepare("SELECT * FROM ".$pref." WHERE post_author='%d' AND post_type='%s' AND post_status NOT IN ('trash','auto-draft') ORDER BY post_date DESC LIMIT $this->offset, ".$this->in_page,$this->user_id,$this->post_type));
            }
        }

        if($posts[0]){

            $p_list = array();


            if(function_exists('rcl_format_rating')){

                foreach($posts as $postdata){
                    foreach($postdata as $p){
                        $p_list[] = $p->ID;
                    }
                }

                $rayt_p = rcl_get_ratings(array('object_id'=>$p_list,'rating_type'=>array($this->post_type)));

                foreach((array)$rayt_p as $r){
                    if(!isset($r->object_id)) continue;
                    $ratings[$r->object_id] = $r->rating_total;
                }

            }

            if(rcl_get_template_path('posts-list-'.$this->post_type.'.php',__FILE__)) 
                $posts_block = rcl_get_include_template('posts-list-'.$this->post_type.'.php',__FILE__);
            else 
                $posts_block = rcl_get_include_template('posts-list.php',__FILE__);

            wp_reset_postdata();

        }else{
            $posts_block = '<p>'.$this->type_name.' '.__('has not yet been published','wp-recall').'</p>';
        }

        return $posts_block;
    }

    function get_postslist(){

        $page_navi = $this->page_navi();

        $posts_block = '<h3>'.__('Published','wp-recall').' "'.$this->type_name.'"</h3>';
        
        $posts_block .= $page_navi;
        $posts_block .= $this->get_postslist_table();
        $posts_block .= $page_navi;
        
        return $posts_block;
    }
    
    function page_navi(){
	global $wpdb;

	$count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(ID) FROM ".$wpdb->base_prefix."posts WHERE post_author='%d' AND post_type='%s' AND post_status NOT IN ('trash','auto-draft')",$this->user_id,$this->post_type));
	if(is_multisite()){
            $blog_list = get_blog_list( 0, 'all' );

            foreach ($blog_list as $blog) {
                $pref = $wpdb->base_prefix.$blog['blog_id'].'_posts';
                $count += $wpdb->get_var($wpdb->prepare("SELECT COUNT(ID) FROM ".$pref." WHERE post_author='%d' AND post_type='%s' AND post_status NOT IN ('trash','auto-draft')",$this->user_id,$this->post_type));
            }
	}
        
        if(!$count) return false;
	
        $rclnavi = new Rcl_PageNavi($this->post_type.'-navi', $count, array('in_page'=>$this->in_page));
        
        $this->offset = $rclnavi->offset;

	return $rclnavi->pagenavi();
    }
}

Вроде это?

0
Вова (Otshelnik-Fm)
не в сети 15 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18642
7
13:29

Ответ на вопрос поставленный вначале топика дан. Закрыто из-за кросспостинга. Не нужно давать тут весь код файлов. Сформулируйте свой вопрос в новой теме

0
Тема закрыта. Публикация новых сообщений запрещена.