Wordpress教程 2023年06月21日
0 收藏 0 点赞 448 浏览 4453 个字


// 在书籍分类文章发布时添加 save_post 钩子函数以触发自动添加wp-autotags插件标签的功能
add_action('save_post_book', 'auto_add_tags');

function auto_add_tags($post_ID) {
    $tags = get_option('wp_aatags_opts');
    $number = get_option('wp_aatags_aadnumber');
    $post_type = get_post_type($post_ID);
    if ($post_type != 'book') {
        return;
    }
    $auto_tag_slug = sanitize_title('自动');
    $draft_tag_slug = sanitize_title('草稿');
    wp_remove_object_terms($post_ID, array($auto_tag_slug, $draft_tag_slug), 'booktag');
    $original_tags = get_the_terms($post_ID, 'booktag');
    if (empty($original_tags)) {
        $post_title = get_post($post_ID)->post_title;
        $post_content = get_post($post_ID)->post_content;
        switch ($tags) {
            case 3:
                $requix = strtolower($post_title . ' ' . wp_trim_words($post_content, 333, ''));
                break;
            case 2:
                $requix = strtolower($post_title . ' ' . wp_trim_words($post_content, 999, ''));
                break;
            default:
                $requix = strtolower($post_title);
                break;
        }
        $body = wp_aatags_keycontents(wp_aatags_html2text($requix), $number);
        if ($body != 'rEr') {
            $keywords = wp_aatags_kwsiconv($body);
            wp_set_post_terms($post_ID, $keywords, 'booktag', true);
        } else {
            wp_aatags_alts($post_ID, $post_title, $post_content);
        }
    }
}

// // 添加批量触发自动添加标签功能的页面
// function auto_add_tags_batch_page() {
//     add_submenu_page(
//         'edit.php?post_type=book',
//         '自动添加标签批处理',
//         '自动添加标签批处理',
//         'manage_options',
//         'auto-add-tags-batch',
//         'auto_add_tags_batch_callback'
//     );
// }
// add_action('admin_menu', 'auto_add_tags_batch_page');

// // 批处理页面回调函数
// function auto_add_tags_batch_callback() {
//     if (!current_user_can('manage_options')) {
//         return;
//     }
    
//     $total_posts = wp_count_posts('book')->publish; // 获取书籍总数
//     $batch_size = 50; // 每个批次处理的书籍数量
//     $current_batch = isset($_GET['batch']) ? absint($_GET['batch']) : 0; // 当前批次数
//     $offset = $current_batch * $batch_size; // 计算偏移量
//     $limit = $batch_size; // 每次查询的限制数量
    
//     $args = array(
//         'post_type' => 'book',
//         'post_status' => 'publish',
//         'posts_per_page' => $limit,
//         'offset' => $offset,
//     );
    
//     $query = new WP_Query($args);
    
//     echo '<div class="wrap">';
//     echo '<h1>自动添加标签批处理</h1>';
    
//     // 显示进度信息
//     echo '<p>总进度:' . ($offset + $query->post_count) . '/' . $total_posts . '</p>';
//     echo '<p>当前批次:' . ($current_batch + 1) . '</p>';
    
//     // 执行批量添加标签操作
//     if ($query->have_posts()) {
//         while ($query->have_posts()) {
//             $query->the_post();
//             auto_add_tags(get_the_ID());
//         }
//         wp_reset_postdata();
//     }
    
//     // 显示操作结果
//     echo '<p>本批次书籍已触发自动添加标签功能。</p>';
    
//     // 显示下一批次按钮
//     $next_batch = $current_batch + 1;
//     $next_url = admin_url('admin.php?page=auto-add-tags-batch&batch=' . $next_batch);
//     echo '<p><a href="' . $next_url . '" rel="external nofollow"  class="button">处理下一批书籍</a></p>';
    
//     echo '</div>';
// }


// 添加批量触发自动添加标签功能的页面
function auto_add_tags_batch_page() {
    add_submenu_page(
        'edit.php?post_type=book',
        '自动添加标签批处理',
        '自动添加标签批处理',
        'manage_options',
        'auto-add-tags-batch',
        'auto_add_tags_batch_callback'
    );
}
add_action('admin_menu', 'auto_add_tags_batch_page');

// 批处理页面回调函数
function auto_add_tags_batch_callback() {
    if (!current_user_can('manage_options')) {
        return;
    }
    
    $total_posts = wp_count_posts('book')->publish; // 获取书籍总数
    $batch_size = 50; // 每个批次处理的书籍数量
    $current_batch = isset($_GET['batch']) ? absint($_GET['batch']) : 0; // 当前批次数
    $offset = $current_batch * $batch_size; // 计算偏移量
    $limit = $batch_size; // 每次查询的限制数量
    
    $args = array(
        'post_type' => 'book',
        'post_status' => 'publish',
        'posts_per_page' => $limit,
        'offset' => $offset,
    );
    
    $query = new WP_Query($args);
    
    echo '<div class="wrap">';
    echo '<h1>自动添加标签批处理</h1>';
    
    // 显示进度信息
    echo '<p>总进度:' . ($offset + $query->post_count) . '/' . $total_posts . '</p>';
    echo '<p>当前批次:' . ($current_batch + 1) . '</p>';
    
    // 执行批量添加标签操作
    if ($query->have_posts()) {
        while ($query->have_posts()) {
            $query->the_post();
            auto_add_tags(get_the_ID());
        }
        wp_reset_postdata();
    }
    
    if (($offset + $query->post_count) < $total_posts) {
        // 自动触发下一批次
        $next_batch = $current_batch + 1;
        $next_url = admin_url('admin.php?page=auto-add-tags-batch&batch=' . $next_batch);
        echo '<script>setTimeout(function() { window.location.href = "' . $next_url . '"; }, 2000);</script>';
    } else {
        // 所有书籍已处理完成
        echo '<p>所有书籍已触发自动添加标签功能。</p>';
    }
    
    echo '</div>';
}




// 当保存书籍自定义字段时,本地化外链图片
add_action('save_post_book', 'localize_book_thumbnail');

function localize_book_thumbnail($post_id) {
    // 获取字段的值
    $thumbnail_url = isset($_POST['book_post_meta']['_thumbnail']) ? $_POST['book_post_meta']['_thumbnail'] : '';

    // 检查是否是外链图片
    if (filter_var($thumbnail_url, FILTER_VALIDATE_URL) !== false) {
        // 获取默认的上传路径
        $upload_dir = wp_upload_dir();

        // 生成本地文件路径
        $file_path = $upload_dir['basedir'] . '/book-thumbnails/';
        wp_mkdir_p($file_path); // 创建文件夹(如果不存在)

        // 获取外链图片文件名
        $file_name = basename($thumbnail_url);

        // 生成本地文件路径和URL
        $local_file_path = $file_path . $file_name;
        $local_file_url = $upload_dir['baseurl'] . '/book-thumbnails/' . $file_name;

        // 下载并保存外链图片到本地
        if (file_put_contents($local_file_path, file_get_contents($thumbnail_url))) {
            // 更新自定义字段的值为本地URL
            $_POST['book_post_meta']['_thumbnail'] = $local_file_url;
        }
    }
}







 

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.mizhanw.com/blog/2514.html

相关推荐
最新Wp Rocket设置教程, 含插件下载+常见问题解决方法
最新Wp Rocket设置教程(超详细), 附GPL版本插件下载链接。图文并茂详细解释每一个设置的含义以及优缺点+兼容性排除,找到最合适的设…
日期:2024-02-24 点赞:0 阅读:42
WordPress破解版插件/主题(开心版, GPL, Nulled)安全吗?有啥缺点?如何获取?
解版插件产业链,安全与否,以及如何下载安全高质量破解版插件,避免下载有病毒主题/插件。 WordPress破解版插件/主题安全吗?这是绝大多…
日期:2024-02-24 点赞:0 阅读:31
终极WordPress速度优化教程, 秒开页面! 优化思路+方法+工具
终极WordPress速度优化教程,全面讲解影响速度的因素和原理。FCP, LCP, TTFB, TBT, CLS,Wp corn, Mar…
日期:2024-02-24 点赞:0 阅读:40
WordPress 的最佳 Cloudflare 设置(边缘涡轮增压)
无论您的 WordPress 主机有多快都无关紧要;您永远无法克服网络延迟。像 Cloudflare 这样的内容分发网络 (CDN) 通过将…
日期:2024-02-24 点赞:0 阅读:32
使用国外主题/插件后网站变很卡响应速度很慢的问题
变卡的原因 由于国内GFW的限制,有些资源被挡在海外无法加载,或者有些资源服务器延迟太高,导致网站加载速度缓慢,解决办法如下,二选一即可。 …
日期:2024-02-21 点赞:0 阅读:52
如何使用 SearchWP 改进 WordPress 搜索(简单快捷)
你想使用 SearchWP 改进 WordPress 搜索吗? 通过改进 WordPress 的内置搜索功能,你可以帮助用户找到他们想要的内…
日期:2024-02-20 点赞:0 阅读:36
发表评论
暂无评论

还没有评论呢,快来抢沙发~