رفتن به مطلب

اپلود تصویر در تنظیمات قالب


پست های پیشنهاد شده

سلام

چطوری میتونم داخل پنل تنظیمات قالب امکان اپلود تصویر رو اضافه کنم؟

الان فقط یه کادر گذاشتم که طرف میتونه لینک عکس رو بزاره بعد ذخیره کنه تا عکس نمایش داده بشه

میخوام مثل تصویر شاخص که طرف کلیک میکنه و تصویر رو از کامپیوتر انتخاب میکنه و ارسال رو میزنه و سیستم خودکار انجام میده

داخل قالب آماده های فاب تمز هم نگاه انداختم نتونستم چیزی پیدا کنم

چطوری این امکان رو بهش اضافه کنم؟

لینک به ارسال

این ویدجت رو پیدا کردم

اما هر کاری میکنم نمیتونم برای تنظیمات قالب بزارمش , همش ارور میده چون از توابع ابزارک داخلش استفاده شده

میشه کدهای اصلی شو رو استخراج کنین تا بتونم در تنظیمات قالب ازش استفاده کنم

image-upload-widget.zip

لینک به ارسال

تقریبا روش زیر رو بتونید پیاده کنید مشکلی نخواهید داشت.


http://code.tutsplus.com/articles/how-to-integrate-the-wordpress-media-uploader-in-theme-and-plugin-options--wp-26052

ویرایش شده توسط افشیـــــن
لینک به ارسال

این صفحات رو قبلا دیدم

خیلی سرچ کردم اما یا سر در نیاوردم یا هم اونی که من میخواستم نبود

مخصوصا همین صفحه ای که گفتین اصلا نمی فهم که دقیقا داره چیکار میکنه یکسره کد اضافه می کنه

نتونستم استفاده ای کنم ازش

لینک به ارسال

http://www.webmaster-source.com/2013/02/06/using-the-wordpress-3-5-media-uploader-in-your-plugin-or-theme/

سه بخش کد داره بخش اول در محل نمایش

بخش دوم در functions.php

و بخش سوم هم در یک فایل با پسوند js که موقع فراخوانی باید پایین تر از فایل jquery.js سایت فراخوانی بشه

لینک به ارسال

آقای فخار این رو هم امتحان کردم

اما اصلا آپلود نکردش یعنی اصلا کار نکرد

, در ضمن باید به این لینک عکس رو بدیم تا بتونه اپلود کنه درسته؟

پست دوم ویجتی که گذاشتم از کتابخانه مدیا وردپرس تغذیه میکنه و وقتی روی دکمه اپلود کلیک میکنی صفحه بارگذاری فایل وردپرس باز میشه

میشه از کدهاش استفاده کرد؟

این کدهای پنل تنظیماتمه :


<?php
/* -- -دسته بندی ها -- */
$themename = " نام سایت";
$shortname = "shortname";
$categories = get_categories('hide_empty=0&orderby=name');
$all_cats = array();
foreach ($categories as $category_item ) {
$all_cats[$category_item->cat_ID] = $category_item->cat_name;
}
array_unshift($all_cats, "انتخاب دسته بندی");
/* -- ساخت تنظیمات -- */
function theme_settings_init(){
register_setting( 'theme_settings', 'theme_settings' );
wp_enqueue_style("panel_style", get_template_directory_uri()."/option/admin.css", false, "1.0.0", "all");
wp_enqueue_script("panel_script", get_template_directory_uri()."/option/panel_script.js", false, "1.0.0");
}
/* -- افزودن تنظیمات به منو پیشخوان -- */
function add_settings_page() {
add_menu_page( __( 'تنظیمات' . 'test' ), __( 'تنظیمات قالب' . '' ), 'manage_options', 'settings', 'theme_settings_page');
}
add_action( 'admin_init', 'theme_settings_init' );
add_action( 'admin_menu', 'add_settings_page' );
/* --تعریف آرایه های تنظیمات -- */
$theme_options = array (
array( "name" =>" تنظیمات" . $themename,
"type" => "title"),
/* -- بخش تنظیمات عمومی -- */
array( "name" => "عمومی",
"type" => "section"),
array( "type" => "open"),
array( "name" => "لوگو سایت",
"desc" => "عکس لوگو را وارد کنید",
"id" => "logo",
"type" => "text",
"std" => ""),
array( "name" => "آیکن سایت",
"desc" => "آیکن سایت باید در اندازه 16*16 باشد",
"id" => $shortname."_favicon", "type" => "text",
"std" => get_bloginfo('url') ."/images/favicon.ico"),
array( "type" => "close"),
/* -- بخش تنظیمات صفحه نخست -- */
array( "name" => "صفحه نخست",
"type" => "section"),
array( "type" => "open"),
array( "name" => "مطالب ویژه صفحه نخست",
"desc" => "دسته مطالب ویژه را انتخاب کنید",
"id" => $shortname."_feat_cat",
"type" => "select",
"options" => $all_cats,
"std" => "انتخاب دسته"),
array( "type" => "close"),
/* --بخش تنظیمات فوتر --- */
array( "name" => "فوتر",
"type" => "section"),
array( "type" => "open"),
array( "name" => "متن کپی رایت فوتر",
"desc" => "متن کپی رایت را وارد کنید",
"id" => "footer_text",
"type" => "textarea",
"std" => ""),
array( "type" => "close")
);
/* -- تعریف بخش های پنل -- */
function theme_settings_page() {
global $themename,$theme_options;
$i=0;
$message='';
if ( 'save' == $_REQUEST['action'] ) {
foreach ($theme_options as $value) {
update_option( $value['id'], $_REQUEST[ $value['id'] ] ); }
foreach ($theme_options as $value) {
if( isset( $_REQUEST[ $value['id'] ] ) ) { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } else { delete_option( $value['id'] ); } }
$message='saved';
}
else if( 'reset' == $_REQUEST['action'] ) {
foreach ($theme_options as $value) {
delete_option( $value['id'] ); }
$message='reset';
}
?>
<div class="wrap options_wrap">
<div id="icon-options-general"></div>
<h2><?php _e( 'تنظیمات قالب نام سایت' ) ?></h2>
<?php
if ( $message=='saved' ) echo '<div class="updated settings-error" id="setting-error-settings_updated">
<p>تنظیمات قالب '.$themename.' ذخیره شد با موفقیت .</strong></p></div>';
if ( $message=='reset' ) echo '<div class="updated settings-error" id="setting-error-settings_updated">
<p>'.$themename.' بازگردانی تنظیمات به حالت اولیه.</strong></p></div>';
?>
<ul>
<li>نسخه قالب : 1.0.0 </li>
</ul>
<div class="content_options">
<form method="post">
<?php foreach ($theme_options as $value) {
switch ( $value['type'] ) {
case "open": ?>
<?php break;
case "close": ?>
</div>
</div><br />
<?php break;
case "title": ?>
<div class="message">
<p>از این پنل برای تنظیم سایت استفاده کنید</p>
</div>
<?php break;
case 'text': ?>
<div class="option_input option_text">
<label for="<?php echo $value['id']; ?>">
<?php echo $value['name']; ?></label>
<input id="" type="<?php echo $value['type']; ?>" name="<?php echo $value['id']; ?>" value="<?php if ( get_settings( $value['id'] ) != "") { echo stripslashes(get_settings( $value['id']) ); } else { echo $value['std']; } ?>" />
<small><?php echo $value['desc']; ?></small>
<div class="clearfix"></div>
</div>
<?php break;
case 'textarea': ?>
<div class="option_input option_textarea">
<label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
<textarea name="<?php echo $value['id']; ?>" rows="" cols=""><?php if ( get_settings( $value['id'] ) != "") { echo stripslashes(get_settings( $value['id']) ); } else { echo $value['std']; } ?></textarea>
<small><?php echo $value['desc']; ?></small>
<div class="clearfix"></div>
</div>
<?php break;
case 'select': ?>
<div class="option_input option_select">
<label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
<select name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>">
<?php foreach ($value['options'] as $option) { ?>
<option <?php if (get_settings( $value['id'] ) == $option) { echo 'selected="selected"'; } ?>><?php echo $option; ?></option>
<?php } ?>
</select>
<small><?php echo $value['desc']; ?></small>
<div class="clearfix"></div>
</div>
<?php break;
case "checkbox": ?>
<div class="option_input option_checkbox">
<label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
<?php if(get_option($value['id'])){ $checked = "checked=\"checked\""; }else{ $checked = "";} ?>
<input id="<?php echo $value['id']; ?>" type="checkbox" name="<?php echo $value['id']; ?>" value="true" <?php echo $checked; ?> />
<small><?php echo $value['desc']; ?></small>
<div class="clearfix"></div>
</div>
<?php break;
case "section":
$i++; ?>
<div class="input_section">
<div class="input_title">
<h3><img src="<?php echo get_template_directory_uri();?>/images/options.png" alt=""> <?php echo $value['name']; ?></h3>
<span class="submit"><input name="save<?php echo $i; ?>" type="submit" class="button-primary" value="ذخیره" /></span>
<div class="clearfix"></div>
</div>
<div class="all_options">
<?php break;
}
}?>
<input type="hidden" name="action" value="save" />
</form>
<form method="post">
<p class="submit">
<input name="reset" type="submit" value="بازنشانی تنظیمات" />
<input type="hidden" name="action" value="reset" />
</p>
</form>
</div>
<div class="footer-credit">
<p>طراحی شده از <a title="نام سایت" href="http://test.ir" target="_blank" > نام سایت</a> .</p>
</div>
</div>
<?php
}

لینک به ارسال

من الان توی کدهای شما کدهای مرتبط با لینکی که دادم رو نمی بینم

این کدها را بگذارید داخل کدهای فرمتون


<label for="upload_image">
<input id="upload_image" type="text" size="36" name="ad_image" value="http://" />
<input id="upload_image_button" class="button" type="button" value="Upload Image" />
<br />Enter a URL or upload an image
</label>

این کدها را هم


jQuery(document).ready(function($){


var custom_uploader;


$('#upload_image_button').click(function(e) {

e.preventDefault();

//If the uploader object has already been created, reopen the dialog
if (custom_uploader) {
custom_uploader.open();
return;
}

//Extend the wp.media object
custom_uploader = wp.media.frames.file_frame = wp.media({
title: 'Choose Image',
button: {
text: 'Choose Image'
},
multiple: false
});

//When a file is selected, grab the URL and set it as the text field's value
custom_uploader.on('select', function() {
attachment = custom_uploader.state().get('selection').first().toJSON();
$('#upload_image').val(attachment.url);
});

//Open the uploader dialog
custom_uploader.open();

});


});

کپی کنید داخل panel_script.js به باقی کدها هم نیازی ندارید از طریق رسانه وردپرس آپلود کنید یا از فایل های داخل کتابخانه فایلی را انتخاب کنید فرقی نمی کند

به اینصورت هم در سایت فراخوانی کنید


<?php
$img_url = get_option('ad_image');?>
<img src="<?php echo $img_url;?>">

من همیشه از همین کدها استفاده می کنم - کدها درستند و هیچ مشکلی ندارند

لینک به ارسال

چون دیدم نشد حذف کردم و کدهای سالم و خالص رو گذاشتم اینجا

الان هم باز طبق گفته تون کدها رو اضافه کردم اما نشد یعنی کار نکرد هر چقدر روی دکمه کلیک میکنم چیزی نمیادش

لینک به ارسال

این نمونه

http://demo.1fakhar.ir/wp-admin/admin.php?page=fakhar

رمز ورود رو هم براتون پیام خصوصی می کنم

لینک به ارسال

خیلی ممنون بله دیدم

احتمالا کدهای من تداخلی دارند

چون دقیقا همون چیزی که گفتین رو منم وارد کردم

من میخوام برای فوتر یه متن و برای هدر یه لوگو و.. بزارم

حالا میخوام بجای اینکه لینک عکس رو بزارم راحت عکس رو اپلود کنم اما من هر چقدر روی دکمه کلیک میکنم نمیشه

ببینید این کل کد پنلمه

option.rar

لینک به ارسال

وارد همون نشانی بشید و از طریق نمایش - ویرایش کدهای فایل functions.php را کپی کنید و ببینید کل کدهای بکار رفته همون هاست یعنی قالب فعلی سایت کلا 4 تا فایل بیشتر نیست و هیچ ابزار جانبی ای هم نداره فقط همون آپلودر را برای نمایش به شما روش گذاشتم

بفرمایید کدهای فانکشنز را بردارید و مطالعه کنید شاید مشکلتون حل شد من نیم ساعت دیگه قالب رو عوض می کنم

لینک به ارسال

متاسفانه وقتی داخل کدهای پنل مدیریت میزارم غیر فعال میشه حال آپلودش

انگاری اون موقع کدهای جاوا رو لود نمیکنه

فکر کنم وردپرس با اینکلود کردن چند فایل در یک فایل مشکل داره

چون وقتی هم که دو فایل رو در فانکشن اینکلود مکنم تصویر شاخص نوشته غیرفعال میشه نمیتنم آپلود کنم


require( get_template_directory() . '/widgets/abut-widget.php' );
require( get_template_directory() . '/option/control.php' );

لینک به ارسال

رو وردپرس مشکل نگذارید وردپرس با اینکلود صدتا فایل هم مشکلی نداره

مشکل اینه که شما باید ترتیب کدها را بشناسید در جاوا اسکریپت و سی اس اس ترتیب کدها در اجرا موثره

لینک به ارسال

خب من در این مورد نمیدونستم

الان دقیقا من وقتی یکی از دو فایل رو حذف می کنم قسمت آپلود تصاویر شاخص درست میشه

چطوری باید ترتیبشون رو درست کنم؟

من در این مورد هیچی نمیدونم

لینک به ارسال

باید کل کدهاشون خونده بشه ولی برای اطمینان به این صورت هم امتحان کنید


require( get_template_directory() . '/option/control.php' );
require( get_template_directory() . '/widgets/abut-widget.php' );

اگر نشد

از برگه تنظیمات قالب سورس کد بگیرید و پیام خصوصی کنید شاید بشه ترتیبشون رو فهمید

لینک به ارسال

الان تنظیمات قالبتون اصلا کار می کنه؟ یعنی چیزی رو ذخیره می کنه چون به نظرذم اکشن درستی در تنظیمات ندارید اصلا

لینک به ارسال

بله کد ها رو همونطور جابجا کردم و حتی در هدر سایت فایل جی کوئری اصلی رو فراخوانی کردم تا جلوتر از همه بیادش

تنظیمات قالب هم ذخیره میشه و خروجی درستی هم میده و روی سایت به درستی نشون میده

براتون ارسال میکنم چند دقیقه دیگه

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...