【问题标题】:Get author ID of a post in wordpress在wordpress中获取帖子的作者ID
【发布时间】:2013-10-11 04:25:32
【问题描述】:

我正在创建一个循环,它会在其中提取有关用户活动的信息。代码在作者页面上,我想要的是获取当前作者 ID,因此根据用户所在的作者页面,它将获取该作者的 ID。

见下文,我希望 AUTHOR-ID 成为当前作者的 ID。

<script type="text/javascript">
                            var pieData = [
                            <?php

                            $user_id = AUTHOR-ID;

                            /* Get all categories */
                            $rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');


                            $categories = get_terms( 'category', 'orderby=count&hide_empty=0' );

                            /* Loop for each category to count the posts of the user */
                            foreach($categories as $category)
                            {
                            $color = '#'.$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];
                               $cat_name = $category->name;
                               $cat_id = $category->term_id;
                               $post_count = count(get_posts("cat=$cat_id&post_author=$user_id"));

                               echo "

                                            {
                                                value: ".$post_count.",
                                                color:'".$color."',
                                                label: ".$user_id."
                                            },";

                            }
                            ?>
                            ]
                            var myPie = new Chart(document.getElementById("piec").getContext("2d")).Pie(pieData);
                        </script>

【问题讨论】:

    标签: php wordpress loops foreach


    【解决方案1】:

    试试这个:

    <?php $author_id=$post->post_author; ?>
    

    它会给你当前的作者 ID。

    或者这个可以帮助你更多:

    global $current_user;
    get_currentuserinfo();                      
    
    $args = array(
        'author'        =>  $current_user->ID, // I could also use $user_ID, right?        
        );
    
    // get his posts 'ASC'
    $current_user_posts = get_posts( $args );
    

    谢谢。

    【讨论】:

      【解决方案2】:

      &lt;?php the_author_meta( 'ID' ); ?&gt;

      可能更好。

      参考:the_author_meta

      【讨论】:

        【解决方案3】:

        在作者档案中,以下内容将获得作者 ID:

        $author_ID = get_query_var('author');
        

        这将为您提供更多信息:

        $pageobj = get_queried_object();
        

        参考:

        http://codex.wordpress.org/Function_Reference/get_query_var
        http://codex.wordpress.org/Function_Reference/get_queried_object

        【讨论】:

          【解决方案4】:

          试试这个

          global $wp_query;
          $thePostID = $wp_query->post->ID;
          $postdata = get_postdata($thePostID);
          $authorID = $postdata['Author ID'];
          

          或者类似的东西

          <?php $author_id=$post->post_author; ?>
          <img src="<?php echo the_author_meta( 'avatar' , $author_id ); ?> " width="140" height="140" class="avatar" alt="<?php echo the_author_meta( 'display_name' , $author_id ); ?>" />
          <?php echo the_author_meta( 'user_nicename' , $author_id ); ?> 
          

          【讨论】:

          • 作者 ID 应该是 Author_ID
          【解决方案5】:

          工作代码在这里

          <script type="text/javascript">
                                      var pieData = [
                                      <?php
                                          $user_id = get_query_var('author');
          
                                          $rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
          
                                          //get all posts from author
                                          $args = array(
                                              'post_type' => 'post',
                                              'author'=> $queried_object->ID
                                          );
          
                                          $the_query = new WP_Query( $args );
          
                                          if ( $the_query->have_posts() ) :
          
                                              while ( $the_query->have_posts() ) : $the_query->the_post();
          
                                                  //put categories in array
                                                  $cat = get_the_category( get_the_ID() );
                                                  $terms[] = $cat[0]->term_id;
          
                                              endwhile;
          
                                              wp_reset_query();
                                          endif;
          
                                          //count matching categories (array vals)
                                          $countVal = array_count_values($terms);
                                          foreach($countVal as $count){
          
                                              $color = '#'.$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];
          
                                              echo "  {
                                                      value: ".$count.",
                                                      color:'".$color."'
                                                      },";
                                          }
          
                                      ?>
                                      ]
                                      var myPie = new Chart(document.getElementById("piec").getContext("2d")).Pie(pieData);
                                  </script>
          

          【讨论】:

            猜你喜欢
            • 2011-03-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-06-12
            • 1970-01-01
            • 2011-06-21
            相关资源
            最近更新 更多