2013-06-20 3 views
0

Так что я пытался много раз, чтобы сделать это сам, но ничего не работает, так что теперь я "м обращаюсь к вам найти людей на StackOverflow.

I имеют сериализованный массив сообщений, просмотренных пользователем под названием «flaged». Теперь в интерфейсе это прекрасно работает, и когда пользователь просматривает сообщение, он публикует свой идентификатор пользователя, идентификатор сообщения и просматриваемую дату. сопоставьте это и заполните список в wp-admin, который отображает пользователя, сообщение и т. д. в строках. Это работает только для $ current_user, поэтому, скажем, администратор входит в систему, они могут видеть только сообщения, которые они просматривали. это должно работать для всех пользователей.

Вот код для просмотра li st сообщений, просматриваемых в админ. Пожалуйста, поделитесь любыми предложениями, которые у вас могут быть.

<?php 

ini_set('display_errors',1); 
error_reporting(E_ALL); 

function searchForId($id, $array) { 
    foreach ($array as $key => $val) { 
     if ($val['post_id'] === $id) { 
      return $array[$key]['date']; 
     } 
    } 
    return null; 
} 

function user_views() { 
    //global $current_user; 
    //get_currentuserinfo(); 
    //$user_flags = get_user_meta($current_user->ID, 'flaged', true); 
    $user_flags_query = new WP_User_Query(array('meta_key' => 'flaged')); 
    $user_flags = $user_flags_query->get_results(); 

    $views_table = '<table id="user-views" class="wp-list-table widefat fixed user-views" cellspacing="0"> 
     <thead> 
      <tr> 
       <th scope="col" id="postviewed" class="manage-column column-postviewed" style=""> 
        <span>Posts Viewed</span><span class="sorting-indicator"></span> 
       </th> 
       <th scope="col" id="filename" class="manage-column column-filename" style=""> 
        <span>File Name</span><span class="sorting-indicator"></span> 
       </th> 
       <th scope="col" id="username" class="manage-column column-username" style=""> 
        <span>Name</span><span class="sorting-indicator"></span> 
       </th> 
       <th scope="col" id="company" class="manage-column column-company" style=""> 
        <span>Company</span><span class="sorting-indicator"></span> 
       </th> 
       <th scope="col" id="address" class="manage-column column-address" style=""> 
        <span>Address</span><span class="sorting-indicator"></span> 
       </th> 
       <th scope="col" id="city" class="manage-column column-city" style=""> 
        <span>City</span><span class="sorting-indicator"></span> 
       </th> 
       <th scope="col" id="state" class="manage-column column-state" style=""> 
        <span>State</span><span class="sorting-indicator"></span> 
       </th> 
       <th scope="col" id="zip" class="manage-column column-zip" style=""> 
        <span>Zip</span><span class="sorting-indicator"></span> 
       </th> 
       <th scope="col" id="email" class="manage-column column-email" style=""> 
        <span>Email</span><span class="sorting-indicator"></span> 
       </th> 
       <th scope="col" id="ddate" class="manage-column column-ddate" style=""> 
        <span>Date Downloaded</span><span class="sorting-indicator"></span> 
       </th> 
      </tr> 
     </thead> 
     <tbody id="the-list">'; 
     foreach($user_flags as $user){ 
      $user_info = get_user_meta($user->ID, 'flaged', true); 
      if($user_info == null){ continue; } 
      $postids = array(); 
      foreach($user_info as $row){ 
       $postids[] = $row['post_id']; 
      } 
      $my_q = new WP_Query(array('post__in' => $postids)); 
      print_r($my_q); 
      if ($my_q->have_posts()){ 
       while ($my_q->have_posts()) { $my_q->the_post(); 
      $views_table .= '<tr id="post-' . get_the_ID() .'"> 
       <td> 
        '. get_the_title().'<br />'; 
        if(the_modified_date('Y-m-d','','',FALSE) < get_the_date('Y-m-d')) { 
        $views_table .= '<span>Published: '. the_date('','','',false) .'</span> |'; 
        } else { 
        $views_table .= '<span>Modified: '. the_modified_date('','','',false) .'</span>'; 
        } 
       $views_table .= '</td> 
       <td>'; 
        if(the_modified_date('Y-m-d','','',FALSE) > get_the_date('Y-m-d')) { 
        $views_table .= '<span>Addendum</span>'; 
        } else { 
        $views_table .= '<span>Proposal Documents</span>'; 
        } 
       $views_table .= '</td>'; 
       '<td> 
        '. $user->first_name . ' ' . $user->last_name .' 
       </td> 
       <td> 
        '. get_user_meta($user->ID, 'compnay', true).' 
       </td> 
       <td> 
        '. get_user_meta($user->ID, 'address', true).' 
       </td> 
       <td> 
        '. get_user_meta($user->ID, 'city', true).' 
       </td> 
       <td> 
        '. get_user_meta($user->ID, 'st', true).' 
       </td> 
       <td> 
        '. get_user_meta($user->ID, 'zip', true).' 
       </td> 
       <td> 
        '. get_user_meta($user->ID, 'email', true).' 
       </td> 
       <td> 
        '. searchForID(get_the_ID(), $user_flags) .' 
       </td> 
      </tr>'; 
      } 
     }else{ 
     $views_table .= 'nothing found'; 
     } 
     wp_reset_query(); 
    } 
    $views_table .= '</tbody></table>'; 
    $views_table .= '</div><!-- .wrap -->'; 

    return $views_table; 
} 
+0

Зачем голосовать, а не рассказывать мне, что вы не понимаете в вопросе? Я рад прояснить. Я также исследовал это до конца, но безрезультатно. –

+0

Для всех, кто сталкивается с этим, я решил проблему, вместо использования 'WP_Query', я вынул весь цикл while и завернул результаты в' foreach ($ postids as $ id) ', а затем просто отобразил данные, используя' $ user-> display_name' и т. д. Я надеюсь, что это поможет кому-то позже по дороге –

ответ

0

Для тех, кто попадается на это, я решил эту проблему, вместо того, чтобы использовать WP_Query, я вынул цельные время цикла и завернутые результаты в Еогеасп ($ postids как $ Id), то просто отображаются данные используя $ user-> display_name и т. д. Я надеюсь, что это поможет кому-то позже по дороге

Смежные вопросы