رفتن به مطلب

مشکل ذخیره ی textarea


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

سلام . من چندتا متاباکس به صورت textarea دارم که ذخیره میشن ولی یه مشکلی وجود داره ! مشکل اینه که وقتی مقدار دارن ذخیره میشه ولی وقتی مقداری وارد نمیکنم ذخیره نمیشه و توی شرط زیر که براش گذاشتم مشکل ایجاد میشه :

    <?php if(get_post_custom_values('w3tools_dfe')) { ?>
<div class="descbox">
<div class="descboxn">توضیحات :</div>
<div class="desco"><?php echo do_shortcode(html_entity_decode(get_post_meta(get_the_ID(),'w3tools_dfe',true ))); ?></div>
</div><?php } else { ?><?php } ?>

کد بالا مربوط به خروجی هست .

کد زیر رو هم که بخشیش مربوط به ذخیره هست رو ملاحظه بفرمایید :

<?php function w3tools_get_custom_field($value) 
{
    global $post;
    $custom_field=get_post_meta($post->ID,$value,true);
    if ( !empty( $custom_field ) )
    return is_array($custom_field) ? stripslashes_deep($custom_field) : stripslashes(wp_kses_decode_entities($custom_field));
    return false;
}
function w3tools_add_custom_meta_box() {
//فعال سازی متاباکس در صفحه پست جدید	
	add_meta_box('w3tools-meta-box',__('جعبه دانلود','textdomain'),'w3tools_meta_box_output', 'post', 'normal', 'high' ); 
//فعال سازی متاباکس در صفحه برگه جدید	
	add_meta_box('w3tools-meta-box',__('جعبه دانلود','textdomain'),'w3tools_meta_box_output', 'page', 'normal', 'high' ); 
}
add_action( 'add_meta_boxes', 'w3tools_add_custom_meta_box' );
function w3tools_meta_box_output($post){
	// ساخت فیلدها
	wp_nonce_field( 'my_w3tools_meta_box_nonce', 'w3tools_meta_box_nonce' ); ?>

<p>
<label for="w3tools_dfe"><?php _e( 'بخش توضیحات بالای دانلود', 'textdomain' ); ?>:</label><br />
<textarea name="w3tools_dfe" id="w3tools_dfe"><?php echo w3tools_get_custom_field('w3tools_dfe'); ?></textarea>
</p>

<?php } function w3tools_meta_box_save($post_id) 
{
    // جلوگیری از اجرای اسکریپت هنگام ذخیره خودکار 
    if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
 
    // بررسی فعلی متاباکس
    if(!isset($_POST['w3tools_meta_box_nonce']) || !wp_verify_nonce($_POST['w3tools_meta_box_nonce'],'my_w3tools_meta_box_nonce')) return;
 
    // جلوگیری از اجرای اسکریپت زمانی که کاربر اجازه ویرایش ندارد
    if(!current_user_can('edit_post')) return;
if(isset($_POST['w3tools_dfe']))
        update_post_meta( $post_id,'w3tools_dfe', esc_attr($_POST['w3tools_dfe']));
}
add_action('save_post','w3tools_meta_box_save');
?>

 

بقیه فیلد ها مثل input ها یا مثلا چک باکس ها به درستی ذخیره میشه . 

ممنون میشم کمکم کنید .

لینک به ارسال

سلام. این خط ها :

if(isset($_POST['w3tools_dfe']))
   update_post_meta( $post_id,'w3tools_dfe', esc_attr($_POST['w3tools_dfe']));

رو به این صورت تغییر بدید :

$w3tools_dfe = isset($_POST['w3tools_dfe']) ? $_POST['w3tools_dfe'] : '';
update_post_meta( $post_id,'w3tools_dfe', esc_attr($w3tools_dfe));

 

  • امتیاز 2
لینک به ارسال
ارسال شده در (ویرایش شده)
در 10 دقیقه قبل، فرحان گفته است :

سلام. این خط ها :


if(isset($_POST['w3tools_dfe']))
   update_post_meta( $post_id,'w3tools_dfe', esc_attr($_POST['w3tools_dfe']));

رو به این صورت تغییر بدید :


$w3tools_dfe = isset($_POST['w3tools_dfe']) ? $_POST['w3tools_dfe'] : '';
update_post_meta( $post_id,'w3tools_dfe', esc_attr($w3tools_dfe));

 

بازم کار نکرد !

نمیدونم مشکل از چیه ! 

همه پلاگین هارو هم غیر فعال کردم . همه ی کد های functions رو هم پاک کردم . بازم مشکل وجود داره !

حتی وردپرس رو هم دوباره نصب کردم . ولی مشکل حل نشد !

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

http://www.w3tools.ir/2016/03/01/آموزش-ساخت-متاباکس-سفارشی-در-وردپرس/

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

شما ابتدای تابع

w3tools_meta_box_save

 

با var_dump از $_POST دامپ بگیرید ببینید چه چیزهایی توش هست.

ممکنه

w3tools_meta_box_nonce

 

هم پست نشده باشه در نتیجه اصلا اون قسمت اپدیت پست متا اجرا نمیشه.

  • امتیاز 2
لینک به ارسال
در 1 دقیقه قبل، فرحان گفته است :

شما ابتدای تابع


w3tools_meta_box_save

 

با var_dump از $_POST دامپ بگیرید ببینید چه چیزهایی توش هست.

ممکنه


w3tools_meta_box_nonce

 

هم پست نشده باشه در نتیجه اصلا اون قسمت اپدیت پست متا اجرا نمیشه.

میشه کدش رو بنویسید .

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

لینک به ارسال
ارسال شده در (ویرایش شده)
در 16 دقیقه قبل، فرحان گفته است :

var_dump($_POST);

 

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

بازم مشکل داشت .

میشه شما هم تستش کنید .؟

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

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

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...