如何列出某个类别的作者?
例如:
CAT NAME: INTERNET AUTHOR: JOHN, DOE, ALEX
CAT NAME: TECH AUTHOR: JOHN
CAT NAME: CODE AUTHOR: ALEX
知道如何在Wordpress中执行此操作吗?
答案 0 :(得分:2)
您可以使用以下代码:
<?php
$cat_arr = get_categories(); // Get the list of Categories
foreach ($cat_arr as $cat_obj) {
$term_id = $cat_obj->term_id;
// Print the Name
?>
<br>
CAT NAME: <?php echo $cat_obj->name ?>, AUTHOR:
<?php
// Get all Posts of that Category
$posts = get_posts(array('category'=>$term_id));
$authors_arr = array();
foreach ($posts as $post_obj) {
$author_id = $post_obj->post_author;
// In depends on where you put this code, the include of the file is required
if (!function_exists('get_userdata')) {
include '<your WP folder>/wp-includes/pluggable.php';
}
$user_obj = get_userdata($author_id);
// Only Add the author is isn't already added, to avoid printed twice
if (!in_array($user_obj->user_login, $authors_arr)) {
$authors_arr[] = $user_obj->user_login; // Instead of user_login you can use any Database field of the "Users" table
}
}
echo implode(', ', $authors_arr) . '<br>';
}
?>
但是如果你想为“当前”类别(不适用于所有类别)执行此操作,则可以使用以下代码:
$cat_obj = get_the_category(); // This is what you put in your comment to get Current Category
$term_id = $cat_obj->term_id;
// Print the Name
?>
<br>
CAT NAME: <?php echo $cat_obj->name ?>, AUTHOR:
<?php
// Get all Posts of that Category
$posts = get_posts(array('category'=>$term_id));
$authors_arr = array();
foreach ($posts as $post_obj) {
$author_id = $post_obj->post_author;
// In depends on where you put this code, the include of the file is required
if (!function_exists('get_userdata')) {
include '<your WP folder>/wp-includes/pluggable.php';
}
$user_obj = get_userdata($author_id);
// Only Add the author is isn't already added, to avoid printed twice
if (!in_array($user_obj->user_login, $authors_arr)) {
$authors_arr[] = $user_obj->user_login; // Instead of user_login you can use any Database field of the "Users" table
}
}
echo implode(', ', $authors_arr) . '<br>';