Есть ли способ перечислить все URL-адреса сообщений из определенной категории в WordPress, без плагина?
Я не знаком с PHP, но я подумал, что если как, я мог бы использовать шаблон страницы, где метод будет вызывать URL-адреса всех сообщений этой категории (например: давайте вызовем категорию «блог»).
Обзор 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
}
Ты можешь использовать get_posts
(https://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] =>
)