具有类别的前端上传媒体

时间:2019-03-12 作者:Fluti

您好,我有一个页面,上面有一个小上载程序,可以在库中上载媒体,下面是我的代码:

            <?php 
                $post_id = $post->ID;
                if ( isset( $_POST[\'html-upload\'] ) && !empty( $_FILES ) ) {
                    require_once(ABSPATH . \'wp-admin/includes/admin.php\');
                    $id = media_handle_upload(\'async-upload\', $post_id); //post id of Client Files page
                    unset($_FILES);
                    if ( is_wp_error($id) ) {
                        $errors[\'upload_error\'] = $id;
                        $id = false;
                    }

                    if ($errors) {
                        echo "<p>There was an error uploading your file.</p>";
                    } else {
                        echo "<p>Your file has been uploaded.</p>";
                    }
                }

            ?>
使用我的表格:

<form id="file-form" enctype="multipart/form-data" action="<?php echo $_SERVER[\'REQUEST_URI\']; ?>" method="POST">

<p id="async-upload-wrap"><label for="async-upload">upload</label>
<input type="file" id="async-upload" name="async-upload"> <input type="submit" value="Upload" name="html-upload"></p>

<p><input type="hidden" name="post_id" id="post_id" value="<?php echo $post_id ?>" />
<?php wp_nonce_field(\'client-file-upload\'); ?>
<input type="hidden" name="redirect_to" value="<?php echo $_SERVER[\'REQUEST_URI\']; ?>" /></p>
<p><input type="submit" value="Save all changes" name="save" style="display: none;"></p>
<form>  
和我的代码段,以启用媒体分类和标记:

// add categories for attachments
function add_categories_for_attachments() {
    register_taxonomy_for_object_type( \'category\', \'attachment\' );
}
add_action( \'init\' , \'add_categories_for_attachments\' );

// add tags for attachments
function add_tags_for_attachments() {
    register_taxonomy_for_object_type( \'post_tag\', \'attachment\' );
}
add_action( \'init\' , \'add_tags_for_attachments\' );
一切都很好。我可以上传,它正在工作。我可以在背面的媒体库中选择类别。现在我只需要一个复选框或列表来选择existant category,以便在上载之前将其附加到上载的媒体。

我现在不知道我是否清楚,但我不是英语母语。:)

谢谢大家!

1 个回复
SO网友:semperlabs

也许你可以在上传后为这些类别分配附件?检查此示例。

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\');

Source

相关推荐

WooCommerce CSV图像URL在Media文件夹中创建其他图像

我通过媒体库拖放上传器上传所有图像,没有问题。每次我将CSV文件用于数千种产品时,我都会输入每个产品的图像url,该url位于媒体库中。示例:/wp content/uploads/2018/08/oa901-essence-1oz。jpg公司因此,产品页面使用添加了-1的图像,而不是原始图像,甚至是原始图像的缩略图。然后,当我下载所有产品时,图像url在图像文件名的末尾添加了-1。我不明白为什么会发生这种情况以及如何解决它。我尝试停用几乎所有的插件,甚至手动上传单个产品,但它仍然做同样的事情。我无法使用