Giới Thiệu Chức Năng “Link Nội Dung” Trong Quản Trị WordPress

31 Tháng mười, 2024

Bạn đang tìm kiếm một cách hiệu quả để quản lý và truy cập các bài viết trên website WordPress của mình? Chức năng “Link Nội Dung” chính là giải pháp hoàn hảo!

Tính Năng Nổi Bật

  1. Lọc Bài Viết Theo Chuyên Mục
    Với chức năng này, bạn có thể dễ dàng chọn lựa bài viết theo từng chuyên mục cụ thể. Việc tổ chức nội dung theo chuyên mục giúp bạn nhanh chóng tìm ra những thông tin cần thiết và tiết kiệm thời gian hơn trong quá trình quản lý.
  2. Lọc Theo Thời Gian
    Chức năng này cho phép bạn lọc bài viết trong khoảng thời gian cụ thể bằng cách nhập ngày bắt đầu và ngày kết thúc. Nếu không nhập thời gian, hệ thống sẽ mặc định lấy tất cả các bài viết. Điều này giúp bạn kiểm soát được nội dung theo thời gian, thuận tiện cho việc phân tích và quản lý.
  3. Tùy Chọn Hiển Thị Linh Hoạt
    Người dùng có thể lựa chọn hiển thị chỉ liên kết bài viết, chỉ thẻ hoặc cả hai. Điều này không chỉ giúp tối ưu hóa trải nghiệm người dùng mà còn nâng cao tính tương tác với nội dung.
  4. Chức Năng Sao Chép và Tải Xuống
    Bạn có thể dễ dàng sao chép tất cả các liên kết bài viết chỉ với một cú nhấp chuột. Hơn nữa, chức năng tải xuống file TXT giúp bạn lưu trữ thông tin một cách nhanh chóng và tiện lợi.

Cách Sử Dụng

  • Truy Cập Giao Diện Quản Trị: Vào phần “Link Nội Dung” trong menu quản trị.
  • Chọn Chuyên Mục và Thời Gian: Chọn chuyên mục bạn muốn và nhập thời gian nếu cần thiết.
  • Nhấn “Hiển Thị Link”: Sau khi hoàn tất, nhấn nút để hiển thị các bài viết phù hợp.
  • Sao Chép hoặc Tải Xuống: Dễ dàng sao chép các liên kết hoặc tải xuống file TXT với các liên kết đó.

Kết Luận

Chức năng “Link Nội Dung” không chỉ giúp bạn quản lý nội dung dễ dàng hơn mà còn nâng cao trải nghiệm người dùng. Hãy tận dụng ngay hôm nay để tối ưu hóa quy trình làm việc của bạn trên WordPress!

Hình demo dùng thực tế

Chèn code vào file funtions.php của theme

<?php

// Thêm trang "Link nội dung" vào menu admin
function custom_content_links_page() {
    add_menu_page(
        'Link Nội Dung',                        // Tiêu đề trang
        'Link Nội Dung',                        // Tiêu đề menu
        'manage_options',                       // Quyền truy cập
        'content-links',                        // Slug
        'render_content_links_page',           // Hàm hiển thị
        'dashicons-admin-links'                 // Biểu tượng
    );
}
add_action('admin_menu', 'custom_content_links_page');

// Hàm hiển thị trang liên kết nội dung
function render_content_links_page() {
    // Kiểm tra quyền truy cập
    if (!current_user_can('manage_options')) {
        return;
    }

    // Xử lý khi người dùng chọn chuyên mục
    $posts = [];
    $display_option = isset($_POST['display_option']) ? $_POST['display_option'] : 'both'; // Mặc định hiển thị cả link và tag
    $category_name = '';
    $start_date = isset($_POST['start_date']) ? sanitize_text_field($_POST['start_date']) : '';
    $end_date = isset($_POST['end_date']) ? sanitize_text_field($_POST['end_date']) : '';

    if (isset($_POST['category_id'])) {
        $category_id = intval($_POST['category_id']);
        $category = get_category($category_id);
        $category_name = $category ? $category->name : 'Tất cả bài viết'; // Lấy tên chuyên mục
        
        $args = array('numberposts' => -1); // Mặc định lấy tất cả bài viết

        if ($category_id > 0) {
            $args['category'] = $category_id; // Lọc theo chuyên mục
        }

        // Thêm điều kiện lọc theo thời gian
        if (!empty($start_date) && !empty($end_date)) {
            $args['date_query'] = array(
                array(
                    'after' => $start_date,
                    'before' => $end_date,
                    'inclusive' => true,
                ),
            );
        }

        $posts = get_posts($args);
    }

    // Lấy tất cả chuyên mục
    $categories = get_categories();
    array_unshift($categories, (object) ['term_id' => 0, 'name' => 'Tất cả bài viết']); // Thêm tùy chọn "Tất cả bài viết"
    
    // Hiển thị biểu mẫu
    ?>
    <div class="wrap">
        <h1>Link Nội Dung</h1>
        <form method="post" action="">
            <label for="category_id">Chọn chuyên mục:</label>
            <select name="category_id" id="category_id" required>
                <?php foreach ($categories as $category) : ?>
                    <option value="<?php echo esc_attr($category->term_id); ?>"><?php echo esc_html($category->name); ?></option>
                <?php endforeach; ?>
            </select>
            <br />
            <label for="start_date">Thời gian bắt đầu:</label>
            <input type="date" name="start_date" id="start_date" value="<?php echo esc_attr($start_date); ?>" />
            <label for="end_date">Thời gian kết thúc:</label>
            <input type="date" name="end_date" id="end_date" value="<?php echo esc_attr($end_date); ?>" />
            <input type="submit" class="button-primary" value="Hiển Thị Link" />
        </form>

        <?php if (!empty($posts)) : ?>
            <h2>Bài Viết</h2>
            <form method="post" action="">
                <input type="hidden" name="category_id" value="<?php echo esc_attr($category_id); ?>" />
                <input type="hidden" name="start_date" value="<?php echo esc_attr($start_date); ?>" />
                <input type="hidden" name="end_date" value="<?php echo esc_attr($end_date); ?>" />
                <label>
                    <input type="radio" name="display_option" value="links" <?php checked($display_option, 'links'); ?>> Chỉ Hiển Thị Link
                </label>
                <label>
                    <input type="radio" name="display_option" value="tags" <?php checked($display_option, 'tags'); ?>> Chỉ Hiển Thị Tag
                </label>
                <label>
                    <input type="radio" name="display_option" value="both" <?php checked($display_option, 'both'); ?>> Hiển Thị Link và Tag
                </label>
                <input type="submit" class="button-secondary" value="Cập Nhật" />
            </form>
            <div style="border: 1px solid #ccc; padding: 15px; margin-top: 15px;">
                <ul id="link-list">
                    <?php foreach ($posts as $index => $post) : setup_postdata($post); ?>
                        <li>
                            <strong><?php echo ($index + 1) . '. '; ?></strong> <!-- Hiển thị số thứ tự -->
                            <?php if ($display_option == 'links' || $display_option == 'both') : ?>
                                <a href="<?php echo esc_url(get_permalink($post->ID)); ?>"><?php echo esc_html(get_the_title($post->ID)); ?></a>
                            <?php endif; ?>
                            <?php if ($display_option == 'tags' || $display_option == 'both') : ?>
                                <br />
                                <strong>Tags:</strong>
                                <?php
                                $tags = get_the_tags($post->ID);
                                if ($tags) {
                                    $tag_links = [];
                                    foreach ($tags as $tag) {
                                        $tag_links[] = '<a href="' . esc_url(get_tag_link($tag->term_id)) . '">' . esc_html($tag->name) . '</a>';
                                    }
                                    echo implode(', ', $tag_links); // Hiển thị các thẻ với liên kết
                                } else {
                                    echo 'Không có thẻ nào.';
                                }
                                ?>
                            <?php endif; ?>
                        </li>
                    <?php endforeach; wp_reset_postdata(); ?>
                </ul>
                <button id="copy-button" class="button-secondary">Sao Chép Link</button>
                <button id="download-button" class="button-secondary">Tải Xuống File TXT</button>
            </div>
        <?php endif; ?>
    </div>

    <script>
        document.getElementById('copy-button').addEventListener('click', function() {
            const links = Array.from(document.querySelectorAll('#link-list a')).map(link => link.href).join('\n');
            navigator.clipboard.writeText(links).then(() => {
                alert('Đã sao chép các liên kết!');
            }, () => {
                alert('Sao chép thất bại!');
            });
        });

        document.getElementById('download-button').addEventListener('click', function() {
            const links = Array.from(document.querySelectorAll('#link-list a')).map(link => link.href).join('\n');
            const categoryName = '<?php echo esc_js($category_name); ?>';
            const today = new Date();
            const date = today.getDate().toString().padStart(2, '0');
            const month = (today.getMonth() + 1).toString().padStart(2, '0'); // Tháng bắt đầu từ 0
            const year = today.getFullYear();
            const formattedDate = `${date}-${month}-${year}`;
            const fileName = `${formattedDate}-${categoryName}.txt`; // Tạo tên file với ngày tháng và tên chuyên mục
            const blob = new Blob([links], { type: 'text/plain' });
            const url = URL.createObjectURL(blob);
            const a = document.createElement('a');
            a.href = url;
            a.download = fileName; // Sử dụng tên file động
            document.body.appendChild(a);
            a.click();
            document.body.removeChild(a);
            URL.revokeObjectURL(url);
        });
    </script>
    <?php
}
?>
Quảng Cáo

Blog ..

Hướng dẫn dịch vụ ..

Zalo
Proxy
VPS
Tài khoản
Hosting
Tên miền
Facebook