Как создать ссылку для перехода на выбранную категорию?

Как настроить переход на записи выбранной рубрики с выпадающего списка на сайте, основываясь на предоставленном коде PHP?
  • 8 июля 2024 г. 22:52
Ответы на вопрос 2
Для создания ссылки для перехода на выбранную категорию можно воспользоваться HTML кодом внутри PHP файла. Например, если у вас есть выпадающий список категорий на сайте и вам нужно создать ссылку для выбранной категории, вы можете использовать следующий код:

```html
<select name="category">
    <option value="category1">Category 1</option>
    <option value="category2">Category 2</option>
    <option value="category3">Category 3</option>
</select>

<a href="category.php?category=<?php echo $_POST['category']; ?>">Перейти в выбранную категорию</a>
```

В данном примере, при выборе определенной категории из выпадающего списка, пользователь будет перенаправлен на страницу `category.php` с параметром `category` равным значению выбранной категории.

Чтобы настроить переход на записи выбранной рубрики на сайте, вам необходимо в файле `category.php` использовать значение параметра `category` для выбора записей из базы данных и отобразить их на странице. Например, код может выглядеть следующим образом:

```php
$category = $_GET['category']; // Получаем значение выбранной категории из URL
// Здесь можно использовать значение $category для выбора записей из базы данных с помощью SQL запроса

// Выводим выбранные записи на странице
echo "Записи из категории $category:";
```

Таким образом, при переходе на страницу `category.php?category=category1` будут отображены записи из категории "Category 1".
Проверил, переход выполняет на нужные url рубрик: 
<div style="max-width:240px; margin:-10px auto 25px;">
    <?php
    $args = [
        'show_option_none' => 'Все рубрики',
        'orderby' => 'name',
        'show_count' => 1,
        'hide_empty' => 1,
        'hide_if_empty' => false,
        'exclude' => '10,754,121',
        'tab_index' => 0,
        'id' => 'category',
    ];

    wp_dropdown_categories($args);
    ?>
</div>

<?php
$categories = get_categories([
    'exclude' => '10,754,121',
    'hide_empty' => 1,
]);

$category_slugs = [];
foreach ($categories as $category) {
    $category_slugs[$category->term_id] = urldecode($category->slug);
}
?>

<script type="text/javascript">
    document.addEventListener('DOMContentLoaded', () => {
        const dropdown = document.getElementById('category');
        const categorySlugs = <?php echo json_encode($category_slugs); ?>;

        console.log('Category slugs:', categorySlugs);

        dropdown.addEventListener('change', () => {
            const selectedValue = dropdown.options[dropdown.selectedIndex].value;
            if (selectedValue > 0) {
                const selectedCategorySlug = decodeURIComponent(categorySlugs[selectedValue]);
                window.location.href = `<?php echo home_url(); ?>/category/${selectedCategorySlug}`;
            }
        });
    });
</script>

Похожие вопросы