php 在 wordpress 中获取帖子的作者 ID

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/19176691/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 18:57:54  来源:igfitidea点击:

Get author ID of a post in wordpress

phpwordpressloopsforeach

提问by Zackskeeter

Im creating a loop where it pulls info about a users activity. the code is on the author page and what i want to to is get the current author ID, so based on what author page the user is on it will fetch the ID of that author.

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

See below, i would want AUTHOR-ID to be the ID of the current author.

见下文,我希望 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>

回答by Krunal Shah

Try with this :

试试这个:

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

it will give you current author id.

它会给你当前的作者 ID。

or this one will helps you more:

或者这个会帮助你更多:

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 );

Thanks.

谢谢。

回答by bryceadams

<?php the_author_meta( 'ID' ); ?>

<?php the_author_meta( 'ID' ); ?>

Is probably better.

可能会更好。

Ref: the_author_meta

参考: the_author_meta

回答by s_ha_dum

On an author archive the following will get the author ID:

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

$author_ID = get_query_var('author');

This will get you a lot more information:

这将为您提供更多信息:

$pageobj = get_queried_object();

Reference:

参考:

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

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

回答by Vaibs_Cool

Try this

尝试这个

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

or something like this

或类似的东西

<?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 ); ?> 

回答by Zackskeeter

Working code here

工作代码在这里

<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>