• اطلاعیه ها

    • Morteza

      باهم بسازیم: اطلس ووکامرس و وردپرس   14/07/96

      تاپیک ایجاد شده برای بحث در جهت ایجاد یک منبع، ویکی، صفحات توضیحی و یا بخش آموزشی جامع برای وردپرس و متعلقات مختلف آن است. لطفا جهت مشارکت در این بحث، ارائه پیشنهاد و یا انتقاد به تاپیک فوق مراجعه کنید. باهم بسازیم: اطلس ووکامرس و وردپرس
rasivell

چك باكس در متاباكس (ضميمه دلخواه)

10 پست در این موضوع قرار دارد

سلام دوستان

من توسط روشي كه قبلا توي چند سايت ديگه خونده بودم و توي اين انجمن سوالاتي پرسيده بودم و خلاصه اينكه به جواب رسيده بودم ، امدم براي ضمينه دلخواه ها يه باكس جدا درست كردم زير قسمت ارسال مطلب به نام متاباكس ها،

حالا سوالم و مشكلم اينه كه من امدم چند مورد گذاشتم كه ورودي ميگيرم و به راحتي توي سايت نشون ميدمش ، با توجه به نياز ها ، ما نياز داريم كه يه چك باكس بزاريم اونجا توي متاباكس ها (ضميمه دلخواه) كه وقتي اين چك باكس فعال بود يه عكس نشون بده يه عكس ثابت! ولي متاسفانه من هر كاري كردم نتونستم اين خروجي رو بگيرم و روشي به ذهنم نزد! لطفا بنده رو راهنمايي كنيد

شما فرض رو بر اين بگيريد كه اين كد نمايش چك باكس ماست توي قسمت متاباكس ها:


<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; ?>

0

به اشتراک گذاری این پست


لینک به پست

اینو برای ذخیره کردن استفاده کنید:


$check = isset($_POST['grf_check']) ? 1 : 0;

4

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

پارسا جان درست متوجه نشدم ، عكس رو هم هنوز نميدونم چيكار بايد بكنم :( ميخوام بگم اگر فعال بود عكس نشون بده اگر نبود هيچي نباشه!

اين متغير رو كجا بكار بگيرم تو فانگشن قالب و يا تو جايي كه ميخوام نشون بده؟ ميشه كامل بگي؟

ویرایش شده در توسط rasivell
0

به اشتراک گذاری این پست


لینک به پست

کجا زمینه دلخواه رو ذخیره میکنید؟

grf_check رو با مقدار متغییر بالا ذخیره کنید

3

به اشتراک گذاری این پست


لینک به پست

پارسا جان ، من توي فايل فانگشن يه ارايه تنظيم كردم ، كه بهش گفتم مقادير رو بگيره ، شما يه نگاه بنداز به اين :


<?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 "";
}
?>

پارسا جان قربونت برم اين عكسه خيلي مهمه و شما اصلا ازش حرف نميزني...

. متشكرم

0

به اشتراک گذاری این پست


لینک به پست

مناصلا توی کد شما بخش ذخیره متا رو ندیدم!

اگر متا برای پست هست ذخیره با تابع زیر انجام میشه:

http://codex.wordpress.org/Function_Reference/update_post_meta

0

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

مرتض جان قربونت برم ، من حواسم هست اونارو قرار دادم عزيم ، احساس كردم بايد بدونيد وقتي دارم اين مساله رو اماده ميكنم حواسم به ايناشم هست ديگه :)

بفرمايد اينجا ذخير ميكنم لطفا نگاه كنيد :


<?php
function 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));
}
}
?>
<?php
function 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');

?>

ویرایش شده در توسط rasivell
0

به اشتراک گذاری این پست


لینک به پست

نوع داده در روش شما مشخص نیست

بهتره از روش دقیق‌تری استفاده کنید

http://www.farinspace.com/how-to-create-custom-wordpress-meta-box

1

به اشتراک گذاری این پست


لینک به پست

دوستان عزيزم ، الان نزديك 2 ساله من روي قالب هامون از اين روش دارم متاباكس ميزارم و كارامونم خوب پيش ميره! راه ساده اون اينه كه خيلي خيلي ساده بيام ضميمه دلخواه بزارم! اين كه از اون صد مرتبه بهتره كه! همون ضميمه دلخواهه كه من براش باكس گذاشتم، مرتضي جان ممنونت ميشم اگر راهنمايي كني كه من بتونم توي خروجي بگم كه اگر تيك فعاله يه عكس نشون بده و اگر فعال نيست كه هيچي خالي باشه!

همين ، دستتونم درد نكنه دوستان كه وقت ميزاريد

اين روش هم روشي بوده كه من 6 ماه پيش توي اموزش خود پارسا جان توي همين انجمن گفته بود استفاده كردم حالا اگر اين روش قديمي شده و به ديد نميخوره شما ببخشيد دوستان عزيزم..

توي لينك هاي زير ماها پيش بنده رو دوستان با اين روش اشنا كردن:

اگر كسي ميتونه به من كمك كنه ممنون ميشم ، ما هر چي نياز داشتيم درست كرديم با ضمينه ها فقط سر اين يه تيك مونديم ، همه موارد ديگه الان نزديك 2 ساله داره كار ميكنه و هيچ اشكالي نداشته ممنونم...

.

0

به اشتراک گذاری این پست


لینک به پست

من اصلا منطق کدهای پست 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

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری