列出WordPress某些类别的帖子网址

时间:2017-11-01 03:38:36

标签: php wordpress url post categories

有没有办法在没有插件的情况下列出WordPress中某个类别的所有帖子网址? 我不熟悉PHP,但我想的是如何,我可以使用一个页面模板,其中一个方法将调用所有这些类别的帖子url(例如:让我们调用类别"博客")。

2 个答案:

答案 0 :(得分:1)

查看WP_Query和WordPress循环。如果我正确理解你的查询(包装在php标签中),这样的事情应该有用:

$the_query = new WP_Query( array( 'category_name' => 'blog' ) );

if ( $the_query->have_posts() ) {
 echo '<ul>';
 while ( $the_query->have_posts() ) {
    $the_query->the_post();
    echo '<li>' . get_permalink() . '</li>';
 }
 echo '</ul>';
 /* Restore original Post Data */
 wp_reset_postdata();
} else {
 // no posts found
} 

答案 1 :(得分:1)

您可以使用get_postshttps://codex.wordpress.org/Template_Tags/get_posts)。

考虑这是一个瘦身版本的WP_Query,它会返回你想要的帖子数组。

$categoryPosts = get_posts(array(
    // Note: The category parameter needs to be the ID of the category, and not the category name.
    'category' => 1,
    // Note: The category_name parameter needs to be a string, in this case, the category name.
    'category_name' => 'Category Name',
));

然后你可以遍历帖子:

foreach($categoryPosts as $categoryPost) {
    // Your logic
}
默认情况下,

$categoryPost将包含以下内容(如果您有自定义字段,则会显示更多字段),这些字段显然会被填充,但这是您在数组中可用的内容:

WP_Post Object
(
    [ID] =>
    [post_author] => 
    [post_date] => 
    [post_date_gmt] => 
    [post_content] => 
    [post_title] => 
    [post_excerpt] => 
    [post_status] => 
    [comment_status] => 
    [ping_status] => 
    [post_password] => 
    [post_name] => 
    [to_ping] => 
    [pinged] => 
    [post_modified] => 
    [post_modified_gmt] => 
    [post_content_filtered] => 
    [post_parent] => 
    [guid] => 
    [menu_order] => 
    [post_type] => 
    [post_mime_type] => 
    [comment_count] => 
    [filter] =>
)