第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從客串形式添加圖像到post_content

從客串形式添加圖像到post_content

PHP
牧羊人nacy 2022-09-12 10:55:45
我試圖讓客人通過帖子類別在我的wordpress頁面中發(fā)布活動,他們需要為帖子設(shè)置帖子縮略圖和1-3張圖像。我添加了帶有set_post_thumbnail()的帖子縮略圖,但我無法弄清楚并在wordpress手札中找到一些東西來幫助我,也許你們知道一些東西可以幫助我走上正確的道路?到目前為止,我的代碼://Upload Image    require_once( ABSPATH . 'wp-admin/includes/image.php' );    require_once( ABSPATH . 'wp-admin/includes/file.php' );    require_once( ABSPATH . 'wp-admin/includes/media.php' );    $attachment_id = media_handle_upload('file',$post_id);    $attachment_id2 = media_handle_upload('file2',$post_id);    $attachment_id3 = media_handle_upload('file3',$post_id);    $attachment_id4 = media_handle_upload('file4',$post_id);//Set Image as thumbnail    set_post_thumbnail($post_id, $attachment_id); 
查看完整描述

1 回答

?
瀟瀟雨雨

TA貢獻(xiàn)1833條經(jīng)驗 獲得超4個贊

我發(fā)現(xiàn)這個問題有點模糊,所以我會用我認(rèn)為你的意思來回答。


首先,您需要表單上的屬性。enctype


<form ... enctype="multipart/form-data">

    <input name="file" type="file">

    <input name="file2" type="file">

    <input name="file3" type="file">

    <input name="file4" type="file">

</form>

現(xiàn)在,在您的流程文件中,您需要從數(shù)組中獲取每個文件。$_FILES


<?php


    $file = !empty( $_FILES[ 'file' ] ) ? $_FILES[ 'file' ] : null;

    $file2 = !empty( $_FILES[ 'file2' ] ) ? $_FILES[ 'file2' ] : null;

    $file3 = !empty( $_FILES[ 'file3' ] ) ? $_FILES[ 'file3' ] : null;

    $file4 = !empty( $_FILES[ 'file4' ] ) ? $_FILES[ 'file4' ] : null;

最后,您需要一個自定義函數(shù)來處理每個文件的上傳。這是我在我的項目中創(chuàng)建和使用的那一個(針對此問題進(jìn)行了修改,因此請進(jìn)行測試!


<?php


function my_asset_uploader( $file, $parent_id = 0, $allowed = [] ) {

    require_once ABSPATH . 'wp-admin/includes/file.php';

    require_once ABSPATH . 'wp-admin/includes/image.php';


    // Get basic attributes

    $filename   = basename( $file[ 'name' ] );

    $mime       = wp_check_filetype( $filename );


    // Get the content type from response headers

    $type   = !empty( $mime[ 'type' ] ) ? $mime[ 'type' ] : $file[ 'type' ];

    $ext    = !empty( $mime[ 'ext' ] ) ? $mime[ 'ext' ] : trim( explode( '|' , array_search( $type, get_allowed_mime_types() ) )[ 0 ] );


    // Basic checks

    if ( !$type || !$ext || ( !empty( $allowed ) && is_array( $allowed ) && !in_array( $ext, $allowed ) ) ) {

        // Not a valid file

        return new WP_Error( 'upload', 'Invalid file type. Please try another file.' );

    }


    // Move file to wp-content

    $body   = @file_get_contents( $file[ 'tmp_name' ] );

    $file   = wp_upload_bits( $filename, null, $body );


    // Upload check

    if ( !empty( $file[ 'error' ] ) ) {

        return new WP_Error( 'upload', $file[ 'error' ] );

    }


    // Write attachment location to the database

    $attachment_id = wp_insert_attachment( [

        'post_title'        => $filename,

        'post_mime_type'    => $file[ 'type' ]

    ], $file[ 'file' ], $parent_id, true );


    if ( is_wp_error( $attachment_id ) ) {

        return $attachment_id;

    }


    // Generate meta

    $attach_data = wp_generate_attachment_metadata( $attachment_id, $file[ 'file' ] );

    wp_update_attachment_metadata( $attachment_id, $attach_data );


    return $attachment_id;

}

用法


<?php


/**

 * Extensions we allow the user to upload

 */

$allowed_extensions = [ 'jpg', 'jpeg', 'png', 'gif' ];


/**

 * Insert post

 */

$post_id = wp_insert_post( ... );


/**

 * Get all files from the request payload

 */

$all_images = array_filter( [

    !empty( $_FILES[ 'file' ] ) ? $_FILES[ 'file' ] : null,

    !empty( $_FILES[ 'file2' ] ) ? $_FILES[ 'file2' ] : null,

    !empty( $_FILES[ 'file3' ] ) ? $_FILES[ 'file3' ] : null,

    !empty( $_FILES[ 'file4' ] ) ? $_FILES[ 'file4' ] : null,

] );


/**

 * Uploaded files

 */

$attachment_ids = [];


/**

 * Check we have any images before looping

 */

if ( $all_images ) {

    foreach ( $all_images as $img_file ) {

        $this_id = my_asset_uploader( $img_file, $post_id, $allowed_extensions );


        if ( $this_id && !is_wp_error( $this_id ) ) {

            $attachment_ids[] = $this_id;

        }

    }

}


/**

 * Check at least one image was successfully uploaded

 */

if ( !empty( $attachment_ids[ 0 ] ) ) {

    set_post_thumbnail( $post_id, $attachment_ids[ 0 ] );

}

這只是一個起點,引導(dǎo)您朝著正確的方向前進(jìn)。


希望這有幫助!


編輯

將三個圖像添加到post_content...


如果使用上述過程并且您擁有附件ID數(shù)組,則可以將每個附件的圖像html附加到帖子內(nèi)容中,如下所示:


<?php


...


/**

 * Check at least one image was successfully uploaded

 */

if ( !empty( $attachment_ids[ 0 ] ) ) {

    set_post_thumbnail( $post_id, $attachment_ids[ 0 ] );

}


/**

 * We have multiple files, lets append them to the post_content

 */

if ( count( $attachment_ids ) > 1 ) {


    $appendage = '';


    foreach ( $attachment_ids as $i => $img_id ) {

        // Skip the first image because we used that as the thumbnail

        if ( $i === 0 ) continue;


        // Get the attachment HTML for a `large` sized image

        if ( $html = wp_get_attachment_image( $img_id, 'large' ) ) {

            $appendage .= $html;

        }

    }


    if ( !empty( $appendage ) ) {


        /**

         * Get the current post content

         */

        $current_content = get_post_field( 'post_content', $post_id, 'raw' );


        /**

         * Update the post

         */

        wp_update_post( [

            'ID' => $post_id,

            'post_content' => ( $current_content . $appendage ) // Joining the two strings

        ] );

    }


}


查看完整回答
反對 回復(fù) 2022-09-12
  • 1 回答
  • 0 關(guān)注
  • 108 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號