前端帖子

时间:2016-03-06 21:27:17

标签: featured dynamic-featured-image

所以我尝试了2 3,我无法设法让它发挥作用。 我有这个主题:Aruna和他有前端帖子,当我发布图像时 我需要写标题并从我的电脑上传图像, 好吧,我这样做后,他把我上传的图像按主题放到一个自定义字段中: 诀窍是当我想从前端上传图像时我想自动将它放在特色图像上。 如果我使用User submited post插件,我发布他的工作..但我想修改我自己的前端。 这对我来说很重要,因为我在Facebook和其他社交媒体和功能图像上分享了很多东西:) 我不知道要放在这里的代码,但我试图告诉你: 的functions.php

case "window-image":
            $format = 'image';
            $title = esc_html($_POST['title_image']);
            $image = esc_url($_POST['postimage']);
            $tags = $_POST['tags_image'];
            $comments = isset($_POST['comments_image']) ? 1 : 0;
            $anonymous = isset($_POST['anonymous_image']) ? 1 : 0;

            $comment_status = $comments == 1 ? 'open' : 'closed';

            $user_id = $id;

            if(($_FILES['image_imagepost']['error'] != 0 && $image == '') || $title == '') {
                wp_redirect(home_url('/') . '?posterror=1');
                exit; 
            }

            $post = array(
              'comment_status' => $comment_status,
              'ping_status'    => 'open',
              'post_author'    => $user_id,
              'post_content'   => '',
              'post_status'    => $status,
              'post_title'     => $title,
              'post_type'      => 'post',
            );  
            $post_id = wp_insert_post($post);

            if($image != '') {
                $pattern = '~' . get_bloginfo('url') . '~';
                if(preg_match($pattern, $image) ) {
                    add_post_meta($post_id, '_standard_image', $image);
                }
                else {
                    //we have an external image :) we save it with the cURL library
                    $filedetails = pathinfo($image);
                    $mime = '';
                    if($filedetails['extension'] == 'jpe' || $filedetails['extension'] == 'jpg' || $filedetails['extension'] == 'jpeg') {
                        $mime = 'image/jpeg';
                    }
                    elseif($filedetails['extension'] == 'png') {
                        $mime = 'image/png';
                    }
                    elseif($filedetails['extension'] == 'gif') {
                        $mime = 'image/gif';
                    }
                    if($mime != '') {
                        require_once( ABSPATH . "wp-admin" . '/includes/image.php' );
                        $ch = curl_init($image);
                        $uploaddir = wp_upload_dir();
                        $filename = $filedetails['filename'] . rand(1, 9999) . '.' . $filedetails['extension']; 
                        //we add some random digits to make sure it's unique
                        $fp = fopen(trailingslashit($uploaddir['path']) . $filename, 'wb');
                        curl_setopt($ch, CURLOPT_FILE, $fp);
                        curl_setopt($ch, CURLOPT_HEADER, 0);
                        curl_exec($ch);
                        curl_close($ch);
                        fclose($fp);

                        $guid = trailingslashit($uploaddir['url'])  . $filename;
                        $attachment = array(
                            'post_mime_type' => $mime,
                            'guid' => $guid,
                            'post_title' => '[External image] : ' . $filedetails['filename'] ,
                            'post_content' => '',
                            'post_author' => $user_id,
                            'post_status' => 'inherit',
                            'post_date' => date( 'Y-m-d H:i:s' ),
                            'post_date_gmt' => date( 'Y-m-d H:i:s' )
                        );

                        // Add the file to the media library and generate thumbnail.
                        $attach_id = wp_insert_attachment( $attachment, trailingslashit($uploaddir['url']) . $filename, $post_id );
                        $attach_data = wp_generate_attachment_metadata( $attach_id, trailingslashit($uploaddir['path']) . $filename );
                        wp_update_attachment_metadata( $attach_id,  $attach_data );

                        add_post_meta($post_id, '_standard_image', trailingslashit($uploaddir['url']) . $filename);
                    }

                }
            }
            else {
                if($_FILES['image_imagepost']['error'] == 0) {
                    $image = $tmp->saveUpload( 'image_imagepost' );
                    add_post_meta($post_id, '_standard_image', wp_get_attachment_url($image['attachment_id']) );
                }
            }

前端的HTML代码

<textarea name="title_image" class="form-control" rows="1" placeholder="<?php _e('Post title', 'Aruna');?>"></textarea>        
                            <input type="file" name="image_imagepost" />

<input type="file" name="image_imagepost" /> this do the trick for upload on custom field ...

我无法理解,当我发布视频时(yt),他自动拍摄缩略图并将其放在特色图片上,我试着看一下视频和图像并且不成功: 这是视频代码:

    <?php
case "window-video":
                $format = 'video';
                $title = esc_html($_POST['title_video']);
                $tags = $_POST['tags_video'];

                if($title == '') {
                    wp_redirect(home_url('/') . '?posterror=1');
                    exit; 
                }

                $comments = isset($_POST['comments_video']) ? 1 : 0;
                $anonymous = isset($_POST['anonymous_video']) ? 1 : 0;

                $comment_status = $comments == 1 ? 'open' : 'closed';

                $user_id = $id;

                $post = array(
                  'comment_status' => $comment_status,
                  'ping_status'    => 'open',
                  'post_author'    => $user_id,
                  'post_content'   => '',
                  'post_status'    => $status,
                  'post_title'     => $title,
                  'post_type'      => 'post',
                );  
                $post_id = wp_insert_post($post);
                if(isset($_FILES['video_file']) && $_FILES['video_file']['error'] == 0) {
                    $video_file = $tmp->saveUpload( 'video_file' );
                    add_post_meta($post_id, '_video_localvideo', wp_get_attachment_url($video_file['attachment_id']) );
                }
                else {
                    $video = esc_url($_POST['video']);
                    if (strpos($video,'youtube') !== false) {
                        //it's youtube, we need toget the thumbnail! :)
                        //we get the id of the video first
                        $videotemp = explode('/watch?v=', $video);
                        if(isset($videotemp[1]) && $videotemp[1] != '') {
                            $idvideo = $videotemp[1];
                            //we have the id, now we put the thumbnail
                            $url_video = 'http://i1.ytimg.com/vi/' . $idvideo . '/hqdefault.jpg';
                        }
                    }
                    elseif (strpos($video,'vimeo') !== false) {
                        //it's youtube, we need toget the thumbnail! :)
                        //we get the id of the video first
                        $videotemp = explode('vimeo.com/', $video);
                        if(isset($videotemp[1]) && $videotemp[1] != '') {
                            $idvideo = $videotemp[1];
                            //we have the id, now we put the thumbnail
                            $json_vimeo = 'http://vimeo.com/api/v2/video/' . $idvideo . '.json';
                            $ch = curl_init();
                            $timeout = 5;
                            curl_setopt($ch, CURLOPT_URL, $json_vimeo);
                            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
                            $json_vimeo = curl_exec($ch);
                            curl_close($ch);
                            $jsontemp = json_decode($json_vimeo, true);
                            if(isset($jsontemp[0]) && isset($jsontemp[0]['thumbnail_large']) && $jsontemp[0]['thumbnail_large'] != '') {
                                $url_video = $jsontemp[0]['thumbnail_large'];
                            }
                        }
                    }
                    if(isset($url_video) && $url_video != '') {
                        //we have an external youtube image :) we save it with the cURL library
                        $filedetails = pathinfo($url_video);
                        $mime = '';
                        if($filedetails['extension'] == 'jpe' || $filedetails['extension'] == 'jpg' || $filedetails['extension'] == 'jpeg') {
                            $mime = 'image/jpeg';
                        }
                        elseif($filedetails['extension'] == 'png') {
                            $mime = 'image/png';
                        }
                        elseif($filedetails['extension'] == 'gif') {
                            $mime = 'image/gif';
                        }
                        if($mime != '') {
                            require_once( ABSPATH . "wp-admin" . '/includes/image.php' );
                            $ch = curl_init($url_video);
                            $uploaddir = wp_upload_dir();
                            $filename = $filedetails['filename'] . rand(1, 9999) . '.' . $filedetails['extension']; 
                            //we add some random digits to make sure it's unique
                            $fp = fopen(trailingslashit($uploaddir['path']) . $filename, 'wb');
                            curl_setopt($ch, CURLOPT_FILE, $fp);
                            curl_setopt($ch, CURLOPT_HEADER, 0);
                            curl_exec($ch);
                            curl_close($ch);
                            fclose($fp);

                            $guid = trailingslashit($uploaddir['url'])  . $filename;
                            $attachment = array(
                                'post_mime_type' => $mime,
                                'guid' => $guid,
                                'post_title' => '[External image] : ' . $filedetails['filename'] ,
                                'post_content' => '',
                                'post_author' => $user_id,
                                'post_status' => 'inherit',
                                'post_date' => date( 'Y-m-d H:i:s' ),
                                'post_date_gmt' => date( 'Y-m-d H:i:s' )
                            );

                            // Add the file to the media library and generate thumbnail.
                            $attach_id = wp_insert_attachment( $attachment, trailingslashit($uploaddir['url']) . $filename, $post_id );
                            $attach_data = wp_generate_attachment_metadata( $attach_id, trailingslashit($uploaddir['path']) . $filename );
                            wp_update_attachment_metadata( $attach_id,  $attach_data );

                            update_post_meta($post_id, '_thumbnail_id', $attach_id);
                        }
                    }

                    add_post_meta($post_id, '_video_externalvideo', $video);
                }

                $nsfw = isset($_POST['nsfw_video']) ? 1 : 2;
                add_post_meta($post_id, '_video_nsfw', $nsfw);
                add_post_meta($post_id, '_anonymous', $anonymous);
?>

这是图像代码:

case "window-image":
            $format = 'image';
            $title = esc_html($_POST['title_image']);
            $image = esc_url($_POST['postimage']);
            $tags = $_POST['tags_image'];
            $comments = isset($_POST['comments_image']) ? 1 : 0;
            $anonymous = isset($_POST['anonymous_image']) ? 1 : 0;

            $comment_status = $comments == 1 ? 'open' : 'closed';

            $user_id = $id;

            if(($_FILES['image_imagepost']['error'] != 0 && $image == '') || $title == '') {
                wp_redirect(home_url('/') . '?posterror=1');
                exit; 
            }

            $post = array(
              'comment_status' => $comment_status,
              'ping_status'    => 'open',
              'post_author'    => $user_id,
              'post_content'   => '',
              'post_status'    => $status,
              'post_title'     => $title,
              'post_type'      => 'post',
            );  
            $post_id = wp_insert_post($post);

            if($image != '') {
                $pattern = '~' . get_bloginfo('url') . '~';
                if(preg_match($pattern, $image) ) {
                    add_post_meta($post_id, '_standard_image', $image);
                }
                else {
                    //we have an external image :) we save it with the cURL library
                    $filedetails = pathinfo($image);
                    $mime = '';
                    if($filedetails['extension'] == 'jpe' || $filedetails['extension'] == 'jpg' || $filedetails['extension'] == 'jpeg') {
                        $mime = 'image/jpeg';
                    }
                    elseif($filedetails['extension'] == 'png') {
                        $mime = 'image/png';
                    }
                    elseif($filedetails['extension'] == 'gif') {
                        $mime = 'image/gif';
                    }
                    if($mime != '') {
                        require_once( ABSPATH . "wp-admin" . '/includes/image.php' );
                        $ch = curl_init($image);
                        $uploaddir = wp_upload_dir();
                        $filename = $filedetails['filename'] . rand(1, 9999) . '.' . $filedetails['extension']; 
                        //we add some random digits to make sure it's unique
                        $fp = fopen(trailingslashit($uploaddir['path']) . $filename, 'wb');
                        curl_setopt($ch, CURLOPT_FILE, $fp);
                        curl_setopt($ch, CURLOPT_HEADER, 0);
                        curl_exec($ch);
                        curl_close($ch);
                        fclose($fp);

                        $guid = trailingslashit($uploaddir['url'])  . $filename;
                        $attachment = array(
                            'post_mime_type' => $mime,
                            'guid' => $guid,
                            'post_title' => '[External image] : ' . $filedetails['filename'] ,
                            'post_content' => '',
                            'post_author' => $user_id,
                            'post_status' => 'inherit',
                            'post_date' => date( 'Y-m-d H:i:s' ),
                            'post_date_gmt' => date( 'Y-m-d H:i:s' )
                        );

                        // Add the file to the media library and generate thumbnail.
                        $attach_id = wp_insert_attachment( $attachment, trailingslashit($uploaddir['url']) . $filename, $post_id );
                        $attach_data = wp_generate_attachment_metadata( $attach_id, trailingslashit($uploaddir['path']) . $filename );
                        wp_update_attachment_metadata( $attach_id,  $attach_data );

                        add_post_meta($post_id, '_standard_image', trailingslashit($uploaddir['url']) . $filename);
                    }

                }
            }
            else {
                if($_FILES['image_imagepost']['error'] == 0) {
                    $image = $tmp->saveUpload( 'image_imagepost' );
                    add_post_meta($post_id, '_standard_image', wp_get_attachment_url($image['attachment_id']) );
                }
            }

            $nsfw = isset($_POST['nsfw_image']) ? 1 : 2;
            add_post_meta($post_id, '_standard_nsfw', $nsfw);
            add_post_meta($post_id, '_anonymous', $anonymous);

            break;

感谢

0 个答案:

没有答案