附件上传时自动分类

时间:2015-02-26 19:50:14

标签: php wordpress

让我们说媒体库有以下类别[新闻,事件,照片,页面,帖子]

你的wordpress也将上面的5设置为post-type。我想要的是什么时候

1- Events - > Add New
2-添加新的events帖子类型时上传文件 3-文件完成上传后,wordpress应自动附加该附件文件的events类别。

我有代码在上传后将类别更新为设定值,但在运行此功能时找不到当前正在编辑的post-type

将类别3添加到上传的文件

 function add_category_automatically($post_ID) {
            wp_set_object_terms($post_ID, array(3) or 'cat_slug_goes_here', 'category', true);
    }
    add_action('add_attachment', 'add_category_automatically');

目前通过ID (正确显示)

进行编辑
add_action( 'admin_init', 'do_something_152677' );
function do_something_152677() {
    // Global object containing current admin page
    global $pagenow;
    // If current page is post.php and post isset than query for its post type
    if ('post.php' === $pagenow && isset($_GET['post'])) {
        global $new_current_post_type;
        $new_current_post_type = get_post_type( $_GET['post'] );
    }
}

将此值提取到cat_slug_goes_here时,该类别不会更新,因为该值不匹配。

1 个答案:

答案 0 :(得分:2)

如果使用编辑器的“添加媒体”功能创建event时上传图像,则应在操作挂钩运行时将其与原始帖子关联。

然后你可以:

function add_category_automatically($post_ID) {
    $attach = get_post($post_ID);
    if ($attach->post_parent) {
        $cats = get_the_category()($attach->post_parent);
        foreach ($cats as $cat) {
            wp_set_object_terms($post_ID, $cat->slug, 'category', true);
        }
    }
}
add_action('add_attachment', 'add_category_automatically');