#php #sorting #loops #categories
#php #сортировка #циклы #Категории
Вопрос:
Гуглил это часами, не могу найти решение.
В моей теме у вас есть Browse
страница, которая извлекает все видео из пользовательского типа сообщения, с которым я работаю. Если пользователь создает 30 категорий, тогда я хотел бы, чтобы пользователи могли сортировать видео с помощью кнопок категорий, перечисленных вверху. Если они нажимают на Horror
идентификатор, как цикл, чтобы показать все Horror
видео.
Как я могу отсортировать свои видео, используя категории в этом цикле?
СТРАНИЦА ПРОСМОТРА
Моя категория ul li a
<ul class="sort-by-category">
<?
$args = array(
'orderby' => 'name',
'parent' => 0
);
$categories = get_categories( $args );
foreach ( $categories as $category ) {
echo '<li><a class="browse-categories" href="' . get_category_link( $category->term_id ) . '">' . $category->name . '</a></li>';
}
?>
</ul>
<?
// Our variables
$numPosts = (isset($_GET['numPosts'])) ? $_GET['numPosts'] : 0;
$page = (isset($_GET['pageNumber'])) ? $_GET['pageNumber'] : 0;
query_posts(array(
'posts_per_page' => $numPosts,
'paged' => $page,
'post_type' => 'theme_video'
));
// our loop
if (have_posts()) {
while (have_posts()){
the_post();
get_template_part( 'partials/content', 'browse' );
}
}
wp_reset_query();
?>
Я немного запутался в том, как действовать дальше. Кажется, ничто из того, что я пробовал, не сортирует цикл, а методы, которые я использовал, устарели на 1-2 года…
Сайт хорошо работает для моей первой темы, но я не знаю, как заставить этот цикл сортировать по выбранной вами категории. Какие-либо советы или указания?
Спасибо!
Ответ №1:
РЕДАКТИРОВАТЬ: ответ найден, и я публикую его для всех, у кого есть эта проблема. Если у вас есть лучшие способы достижения этой цели, пожалуйста, опубликуйте ниже в интересах других.
Поместите этот код в свой category.php .Он автоматически захватит категорию из URL-адреса и передаст ее в cat => $category_id
и соответствующим образом обновит цикл.
<ul class="sort-by-category">
<?
$args = array(
'orderby' => 'name',
'parent' => 0
);
$categories = get_categories( $args );
foreach ( $categories as $category ) {
echo '<li><a class="browse-categories" href="' . get_category_link( $category->term_id ) . '">' . $category->name . '</a></li>';
}
?>
</ul>
<?
// Our variables
$page = (isset($_GET['pageNumber'])) ? $_GET['pageNumber'] : 0;
// grab slug from url
$category_id = get_query_var('cat');
// define args
$args = array(
'posts_per_page' => '36',
'paged' => $page,
'post_type' => 'theme_video',
'cat' => $category_id
);
// place args in query
$category_posts = new WP_Query($args);
// our loop
if($category_posts->have_posts()) {
while($category_posts->have_posts()) {
$category_posts->the_post();
get_template_part( 'partials/content', 'browse' );
}
}
wp_reset_query();
?>