Прилепленные записи на отдельной странице

Слов в тексте – 398, время чтения в минутах – 2



С помощью этого плагина вы сможете получить шорткод и размещать заголовки прилепленных записей на любой странице своего блога.

1. Создайте папку sticky-posts-category в директории wp-content/plugins вашего блога.

2. Создайте файл sticky-posts-category.php для размещения в этой директории.

3. В этот файл перенесите следующий код:


<?php
/*
Plugin Name: Sticky Posts Category
Description: Adds a page to display only sticky posts as if they were in a category.
Version: 1.0
Author: newsbee
*/

// Register a custom page to display sticky posts
function sticky_posts_category_page() {
    // Register the page under "Pages > Sticky Posts" in WordPress
    add_menu_page(
        'Sticky Posts',               // Page title
        'Sticky Posts Category',       // Menu title
        'manage_options',              // Capability
        'sticky-posts-category',       // Menu slug
        'display_sticky_posts'         // Callback function to display content
    );
}
add_action('admin_menu', 'sticky_posts_category_page');

// Callback function to display sticky posts
function display_sticky_posts() {
    echo '<div class="wrap"><h1>Sticky Posts</h1>';
    
    // Query to get only sticky posts
    $sticky_posts_query = new WP_Query([
        'post__in' => get_option('sticky_posts'),
        'ignore_sticky_posts' => 1,
    ]);

    // Check if there are sticky posts
    if ($sticky_posts_query->have_posts()) {
        echo '<ul>';
        while ($sticky_posts_query->have_posts()) : $sticky_posts_query->the_post();
            echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
        endwhile;
        echo '</ul>';
        wp_reset_postdata();
    } else {
        echo '<p>No sticky posts found.</p>';
    }

    echo '</div>';
}

// Shortcode to display sticky posts on any page
function sticky_posts_shortcode() {
    ob_start();
    
    // Query to get only sticky posts
    $sticky_posts_query = new WP_Query([
        'post__in' => get_option('sticky_posts'),
        'ignore_sticky_posts' => 1,
    ]);

    // Display sticky posts if they exist
    if ($sticky_posts_query->have_posts()) {
        echo '<ul>';
        while ($sticky_posts_query->have_posts()) : $sticky_posts_query->the_post();
            echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
        endwhile;
        echo '</ul>';
        wp_reset_postdata();
    } else {
        echo '<p>No sticky posts found.</p>';
    }

    return ob_get_clean();
}
add_shortcode('sticky_posts', 'sticky_posts_shortcode');

4. Активируйте плагин

5. В любой заметке или на любой странице теперь можно разместить шорткод

[sticky _ posts]

NB. Не забудьте удалить лишние пробелы в шорткоде.

Он покажет ссылки на все ваши прилепленные заметки в одном месте.

E.g.


 ⬇ Поделиться в соцсетях и мессенджерах



Популярные записи

Рубрики блога




newsbee Media