wp.media
আপনার ওয়ার্ডপ্রেস মিডিয়া ম্যানেজার ডায়ালগ ব্যবহার করা উচিত ।
প্রথমত, আপনাকে স্ক্রিপ্টগুলি সজ্জিত করতে হবে:
// As you are dealing with plugin settings,
// I assume you are in admin side
add_action( 'admin_enqueue_scripts', 'load_wp_media_files' );
function load_wp_media_files( $page ) {
// change to the $page where you want to enqueue the script
if( $page == 'options-general.php' ) {
// Enqueue WordPress media scripts
wp_enqueue_media();
// Enqueue custom script that will interact with wp.media
wp_enqueue_script( 'myprefix_script', plugins_url( '/js/myscript.js' , __FILE__ ), array('jquery'), '0.1' );
}
}
আপনার এইচটিএমএল এর মতো কিছু হতে পারে (আপনি আমার উত্তরের মতো ইমেজ ইউআরএল পরিবর্তে প্লাগইন সেটিংয়ে আমার কোডটি সংযুক্তি আইডি ব্যবহার করুন নোট করুন, আমি মনে করি এটি আরও ভাল example উদাহরণস্বরূপ, আইডি ব্যবহার করা আপনাকে বিভিন্ন চিত্রের আকার পেতে দেয় যখন আপনি তাদের প্রয়োজন):
$image_id = get_option( 'myprefix_image_id' );
if( intval( $image_id ) > 0 ) {
// Change with the image size you want to use
$image = wp_get_attachment_image( $image_id, 'medium', false, array( 'id' => 'myprefix-preview-image' ) );
} else {
// Some default image
$image = '<img id="myprefix-preview-image" src="https://some.default.image.jpg" />';
}
<?php echo $image; ?>
<input type="hidden" name="myprefix_image_id" id="myprefix_image_id" value="<?php echo esc_attr( $image_id ); ?>" class="regular-text" />
<input type='button' class="button-primary" value="<?php esc_attr_e( 'Select a image', 'mytextdomain' ); ?>" id="myprefix_media_manager"/>ç
myscript.js
jQuery(document).ready( function($) {
jQuery('input#myprefix_media_manager').click(function(e) {
e.preventDefault();
var image_frame;
if(image_frame){
image_frame.open();
}
// Define image_frame as wp.media object
image_frame = wp.media({
title: 'Select Media',
multiple : false,
library : {
type : 'image',
}
});
image_frame.on('close',function() {
// On close, get selections and save to the hidden input
// plus other AJAX stuff to refresh the image preview
var selection = image_frame.state().get('selection');
var gallery_ids = new Array();
var my_index = 0;
selection.each(function(attachment) {
gallery_ids[my_index] = attachment['id'];
my_index++;
});
var ids = gallery_ids.join(",");
jQuery('input#myprefix_image_id').val(ids);
Refresh_Image(ids);
});
image_frame.on('open',function() {
// On open, get the id from the hidden input
// and select the appropiate images in the media manager
var selection = image_frame.state().get('selection');
var ids = jQuery('input#myprefix_image_id').val().split(',');
ids.forEach(function(id) {
var attachment = wp.media.attachment(id);
attachment.fetch();
selection.add( attachment ? [ attachment ] : [] );
});
});
image_frame.open();
});
});
// Ajax request to refresh the image preview
function Refresh_Image(the_id){
var data = {
action: 'myprefix_get_image',
id: the_id
};
jQuery.get(ajaxurl, data, function(response) {
if(response.success === true) {
jQuery('#myprefix-preview-image').replaceWith( response.data.image );
}
});
}
এবং চিত্রের পূর্বরূপ রিফ্রেশ করার জন্য আজাক্স ক্রিয়া:
// Ajax action to refresh the user image
add_action( 'wp_ajax_myprefix_get_image', 'myprefix_get_image' );
function myprefix_get_image() {
if(isset($_GET['id']) ){
$image = wp_get_attachment_image( filter_input( INPUT_GET, 'id', FILTER_VALIDATE_INT ), 'medium', false, array( 'id' => 'myprefix-preview-image' ) );
$data = array(
'image' => $image,
);
wp_send_json_success( $data );
} else {
wp_send_json_error();
}
}
পিডি: এটি অন্যান্য উত্তরের উপর ভিত্তি করে এখানে লেখা একটি দ্রুত নমুনা । পরীক্ষিত হয়নি কারণ কোডটি কী ব্যবহৃত হবে তা বা আপনার সঠিক সমস্যাগুলি সম্পর্কে সঠিক তথ্য সরবরাহ করেন নি।
wp.media
কাস্টম আপলোডগুলির অনুমতি দেওয়ার জন্য অন্তর্ভুক্ত করা উচিত , এই প্রয়োজনীয়তার জন্য একটি মিডিয়া ফাইল নির্বাচন করুন। ডাব্লুপিএসইর অনেকগুলি উদাহরণ রয়েছে তবে সম্ভবত এই পোস্টগুলি আপনাকে জিরোসোনারমানি.com/… সহায়তা করবে আপনি এছাড়াও গিথুব উদাহরণগুলিতে সন্ধান করতে পারেন, বিশেষত সমুদ্র 90 - github.com/ocean90/media-modal-demo