Реализация последних публикаций по категориям с использованием PHP: подробное руководство

В этой статье блога мы рассмотрим различные методы реализации функции «Последние публикации по категориям» с помощью PHP. Эта функция обычно используется в блогах и на веб-сайтах для отображения списка самых последних сообщений в определенных категориях. Мы предоставим примеры кода для каждого метода, чтобы помочь вам понять процесс реализации. Давайте погрузимся!

<?php
$category = $_GET['category']; // Assuming the category is passed via query parameter
// Connect to the database
$conn = mysqli_connect("localhost", "username", "password", "database_name");
// Retrieve recent posts by category
$query = "SELECT * FROM posts WHERE category = '$category' ORDER BY timestamp DESC LIMIT 5";
$result = mysqli_query($conn, $query);
// Display the posts
while ($row = mysqli_fetch_assoc($result)) {
    echo $row['title'] . "<br>";
}
// Close the database connection
mysqli_close($conn);
?>

Метод 2: метод фильтрации массива
Если все сообщения хранятся в массиве, вы можете использовать функцию array_filter для фильтрации последних сообщений на основе выбранной категории.

<?php
$posts = [
    ['title' => 'Post 1', 'category' => 'Category A', 'timestamp' => '2024-03-10'],
    ['title' => 'Post 2', 'category' => 'Category B', 'timestamp' => '2024-03-09'],
    // ... more posts
];
$category = $_GET['category']; // Assuming the category is passed via query parameter
// Filter the array to get recent posts by category
$filteredPosts = array_filter($posts, function ($post) use ($category) {
    return $post['category'] === $category;
});
// Sort the filtered posts by timestamp in descending order
usort($filteredPosts, function ($a, $b) {
    return strtotime($b['timestamp']) - strtotime($a['timestamp']);
});
// Display the posts
foreach ($filteredPosts as $post) {
    echo $post['title'] . "<br>";
}
?>

Метод 3: CMS или фреймворк
Если вы используете систему управления контентом (CMS) или PHP-фреймворк, например WordPress или Laravel, часто существуют встроенные функции или методы для получения последних сообщений по категориям. Эти методы различаются в зависимости от используемой вами CMS или платформы. Вот пример использования WordPress:

<?php
$category = $_GET['category']; // Assuming the category is passed via query parameter
// Retrieve recent posts by category using WP_Query in WordPress
$args = array(
    'category_name' => $category,
    'posts_per_page' => 5,
    'orderby' => 'date',
    'order' => 'DESC',
);
$query = new WP_Query($args);
// Display the posts
if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        the_title();
        echo "<br>";
    }
} else {
    echo "No posts found.";
}
// Restore original post data
wp_reset_postdata();
?>

В этой статье мы рассмотрели три различных метода реализации функции «Последние публикации по категориям» с помощью PHP. Вы можете выбрать метод, который соответствует требованиям вашего проекта и среде. Независимо от того, используете ли вы метод запроса к базе данных, фильтрацию массива или используете функции CMS или платформы, эти методы помогут вам отображать последние сообщения по категориям на вашем веб-сайте. Приятного кодирования!