رفتن به مطلب

متاباکس برای پست تایپ


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

سلام

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


<?php
$arr_sample_details =
array (
"hajm" => array(
"name" => "hajm",
"type" => "input",
"title" => "حجم فایل",
"description" => "",
"scope" => array("post","page")),
"link" => array(
"name" => "link",
"type" => "input",
"title" => "آدرس فایل دانلود",
"description" => "",
"scope" => array("post","page")),
"ramz" => array(
"name" => "ramz",
"type" => "input",
"title" => "رمز عبور فایل",
"description" => "",
"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:200px; float:right">'.$meta_box['title'].'</span>';
if( $meta_box['type'] == "input" ) {
$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="text" name="'.$meta_box['name'].'" value="'.$meta_box_value.'" size="98" /><br />';
} elseif ( $meta_box['type'] == "select" ) {
echo'<select name="'.$meta_box['name'].'">';
foreach ($meta_box['options'] as $option) {
echo'<option';
if ( get_post_meta($post->ID, $meta_box['name'], true) == $option ) {
echo ' selected="selected"';
} elseif ( $option == $meta_box['std'] ) {
echo ' selected="selected"';
}
echo'>'. $option .'</option>';
}
echo'</select>';
}
echo '</div>';
echo'<p><label for="'.$meta_box['name'].'">'.$meta_box['description'].'</label></p>';
}
}
?>
<?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' );
}
}
?>
<?php
add_action('admin_menu', 'create_meta_box');
add_action('save_post', 'save_form_data');
?>

که شکلش این جوری شد :

27416608732430232603.png

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

باید چی کار کنم که این ضمینه های به این شکل در پست تایپ هم نمایش داده بشه .

لینک به ارسال

در تعریف متاباکس نوع پست را باید مشخص کنید


add_meta_box( 'my-custom-fields', 'جعبه دانلود', 'generate_sample_form', 'post', 'normal', 'low' );

نام پست سفارشی را جایگزین post کنید

لینک به ارسال
  • 4 ماه بعد...

سلام مجدد .

ابتدا ببخشید تاپیک نچندان قدیمی را بالا می یارم .

می خواستم بدونم روی این فرمت چطوری می تونم از checkbox استفاده کنم یعنی به جای "type" => "input", .

تشکر .

لینک به ارسال
  • 2 هفته بعد...

سلام مجدد .

ابتدا ببخشید تاپیک نچندان قدیمی را بالا می یارم .

می خواستم بدونم روی این فرمت چطوری می تونم از checkbox استفاده کنم یعنی به جای "type" => "input", .

تشکر .

دوست عزیز یه سوال دارم

شما خروجی کد بالا رو چطور در صفحه نمایش می دید؟؟؟؟مثلا نمایش همون لینک دانلود رو به کاربر یا حجم و ...

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

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

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

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

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

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

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

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

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

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