rasivell 352 ارسال شده در آذر 91 گزارش بازنشر ارسال شده در آذر 91 سلام دوستانمن توسط روشي كه قبلا توي چند سايت ديگه خونده بودم و توي اين انجمن سوالاتي پرسيده بودم و خلاصه اينكه به جواب رسيده بودم ، امدم براي ضمينه دلخواه ها يه باكس جدا درست كردم زير قسمت ارسال مطلب به نام متاباكس ها،حالا سوالم و مشكلم اينه كه من امدم چند مورد گذاشتم كه ورودي ميگيرم و به راحتي توي سايت نشون ميدمش ، با توجه به نياز ها ، ما نياز داريم كه يه چك باكس بزاريم اونجا توي متاباكس ها (ضميمه دلخواه) كه وقتي اين چك باكس فعال بود يه عكس نشون بده يه عكس ثابت! ولي متاسفانه من هر كاري كردم نتونستم اين خروجي رو بگيرم و روشي به ذهنم نزد! لطفا بنده رو راهنمايي كنيدشما فرض رو بر اين بگيريد كه اين كد نمايش چك باكس ماست توي قسمت متاباكس ها:<input type="checkbox" name="grf_check" value=""/>حالا توي خروجي توسط اين كد ميگم كه اگر اين زمينه دلخواه من چك باكسش تيك خورده بود يه عكس پيش فرض كه قبلا تو سرور اپلود كردم رو نشون بده:<?php $check=get_post_meta($post->ID, 'grf_check', true);if($check){ ?> <?php echo $check; ?><?php}else{echo "";}?>كه من امدم ويرايشش كردم و لينك و ... دادم بهش و هر كاري كردم نتونستم ، ميدونيد اشكالم چيه؟ اشكالم اينه نميدونم چطور بايد بهش بفهمونم كه كي اين چك باكس تيكش ميخوره!! و اينكه با صدا زدن كد زير چطور بهش لينك عكس پيش فرض رو بدم؟؟؟ متشكرم اگر كد فوق رو برام طوري ويرايش كنيد كه اگر چك باكس تيك خورده بود فقط يه عكس نشون بده : <?php echo $check; ?> نقل قول لینک به ارسال
Parsa 23463 ارسال شده در آذر 91 گزارش بازنشر ارسال شده در آذر 91 اینو برای ذخیره کردن استفاده کنید:$check = isset($_POST['grf_check']) ? 1 : 0; 4 نقل قول لینک به ارسال
rasivell 352 ارسال شده در آذر 91 مالک گزارش بازنشر ارسال شده در آذر 91 (ویرایش شده) پارسا جان درست متوجه نشدم ، عكس رو هم هنوز نميدونم چيكار بايد بكنم ميخوام بگم اگر فعال بود عكس نشون بده اگر نبود هيچي نباشه!اين متغير رو كجا بكار بگيرم تو فانگشن قالب و يا تو جايي كه ميخوام نشون بده؟ ميشه كامل بگي؟ ویرایش شده آذر 91 توسط rasivell نقل قول لینک به ارسال
Parsa 23463 ارسال شده در آذر 91 گزارش بازنشر ارسال شده در آذر 91 کجا زمینه دلخواه رو ذخیره میکنید؟grf_check رو با مقدار متغییر بالا ذخیره کنید 3 نقل قول لینک به ارسال
rasivell 352 ارسال شده در آذر 91 مالک گزارش بازنشر ارسال شده در آذر 91 پارسا جان ، من توي فايل فانگشن يه ارايه تنظيم كردم ، كه بهش گفتم مقادير رو بگيره ، شما يه نگاه بنداز به اين :<?php /// بخش متاباكس ها - شروع$prefix = 'grf_'; "check" => array( "name" => $prefix . "check", "type" => "check", "title" => "مطلب بدون كاور", "scope" => array("post","page")),);?><?phpبعدش امدم و پايين ترش گفتم:function generate_sample_form() {global $post, $arr_sample_details;foreach($arr_sample_details as $meta_box) {echo'<input type="hidden" name="'.$meta_box['name'].'_noncename" id="'.$meta_box['name'].'_noncename" value="'.wp_create_nonce( plugin_basename(__FILE__) ).'" />';echo'<div><span style="width:140px; float:right">'.$meta_box['title'].'</span>';if( $meta_box['type'] == "check" ) {$meta_box_value = get_post_meta($post->ID, $meta_box['name'], true);if($meta_box_value == "")$meta_box_value = $meta_box['std'];echo'<input type="checkbox" name="'.$meta_box['name'].'" value="'.$meta_box_value.'"/><br /> ';}echo '</div>';echo"";}}?>و ميخوام با دستور زير توي يه صحفه صداش كنم بگم كه : اگر تيك خورده عكس پيش فرض نمايش بده و اگر نخورده هيچي نشون نده <?php $check=get_post_meta($post->ID, 'grf_check', true);if($check){ ?> <?php echo $check; ?><?php}else{echo "";}?>پارسا جان قربونت برم اين عكسه خيلي مهمه و شما اصلا ازش حرف نميزني.... متشكرم نقل قول لینک به ارسال
Morteza 34190 ارسال شده در آذر 91 گزارش بازنشر ارسال شده در آذر 91 مناصلا توی کد شما بخش ذخیره متا رو ندیدم!اگر متا برای پست هست ذخیره با تابع زیر انجام میشه:http://codex.wordpress.org/Function_Reference/update_post_meta نقل قول لینک به ارسال
rasivell 352 ارسال شده در آذر 91 مالک گزارش بازنشر ارسال شده در آذر 91 (ویرایش شده) مرتض جان قربونت برم ، من حواسم هست اونارو قرار دادم عزيم ، احساس كردم بايد بدونيد وقتي دارم اين مساله رو اماده ميكنم حواسم به ايناشم هست ديگه بفرمايد اينجا ذخير ميكنم لطفا نگاه كنيد :<?phpfunction save_form_data( $post_id ) {global $post, $arr_sample_details;foreach($arr_sample_details as $meta_box) {if ( !wp_verify_nonce( $_POST[$meta_box['name'].'_noncename'], plugin_basename(__FILE__) )) {return $post_id;}if ( 'page' == $_POST['post_type'] ) {if ( !current_user_can( 'edit_page', $post_id ))return $post_id;} else {if ( !current_user_can( 'edit_post', $post_id ))return $post_id;}$data = $_POST[$meta_box['name']];if(get_post_meta($post_id, $meta_box['name']) == "")add_post_meta($post_id, $meta_box['name'], $data, true);elseif($data != get_post_meta($post_id, $meta_box['name'], true))update_post_meta($post_id, $meta_box['name'], $data);elseif($data == "")delete_post_meta($post_id, $meta_box['name'], get_post_meta($post_id, $meta_box['name'], true));}}?><?phpfunction create_meta_box() { global $theme_name, $arr_sample_details; if (function_exists('add_meta_box')) { add_meta_box( 'my-custom-fields', 'مشخصات محصول', 'generate_sample_form', 'post', 'normal', 'low' ); } } add_action('admin_menu', 'create_meta_box'); add_action('save_post', 'save_form_data');?> ویرایش شده آذر 91 توسط rasivell نقل قول لینک به ارسال
Parsa 23463 ارسال شده در آذر 91 گزارش بازنشر ارسال شده در آذر 91 نوع داده در روش شما مشخص نیستبهتره از روش دقیقتری استفاده کنیدhttp://www.farinspace.com/how-to-create-custom-wordpress-meta-box 1 نقل قول لینک به ارسال
rasivell 352 ارسال شده در آذر 91 مالک گزارش بازنشر ارسال شده در آذر 91 دوستان عزيزم ، الان نزديك 2 ساله من روي قالب هامون از اين روش دارم متاباكس ميزارم و كارامونم خوب پيش ميره! راه ساده اون اينه كه خيلي خيلي ساده بيام ضميمه دلخواه بزارم! اين كه از اون صد مرتبه بهتره كه! همون ضميمه دلخواهه كه من براش باكس گذاشتم، مرتضي جان ممنونت ميشم اگر راهنمايي كني كه من بتونم توي خروجي بگم كه اگر تيك فعاله يه عكس نشون بده و اگر فعال نيست كه هيچي خالي باشه!همين ، دستتونم درد نكنه دوستان كه وقت ميزاريداين روش هم روشي بوده كه من 6 ماه پيش توي اموزش خود پارسا جان توي همين انجمن گفته بود استفاده كردم حالا اگر اين روش قديمي شده و به ديد نميخوره شما ببخشيد دوستان عزيزم..توي لينك هاي زير ماها پيش بنده رو دوستان با اين روش اشنا كردن:اگر كسي ميتونه به من كمك كنه ممنون ميشم ، ما هر چي نياز داشتيم درست كرديم با ضمينه ها فقط سر اين يه تيك مونديم ، همه موارد ديگه الان نزديك 2 ساله داره كار ميكنه و هيچ اشكالي نداشته ممنونم.... نقل قول لینک به ارسال
Morteza 34190 ارسال شده در آذر 91 گزارش بازنشر ارسال شده در آذر 91 من اصلا منطق کدهای پست 5 رو متوجه نشدم!ببینید اگر میخواید یک چک باکس باشه که براساس تیک خوردن یا نخوردن عکسی بیاد من اینطور مینویسم:در متاباکس:<input type="checkbox" name="mycheck" value="1"/>برای ذخیره:update_post_meta($post_id, 'mycheck', $_POST['mycheck']);برای بررسی وجود:$mycheck = get_post_meta($post_id, 'mycheck', true);if(!empty($mycheck)){ //نمایش عکس} 1 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .