RedPlus

ايجاد متاباكس براي زمينه دلخواه

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

سلام به همه دوستان عزيز ! از عنوان هم معلوم فك كنم ! ميخوام ي متاباكس ايجاد كنم براي زمينه هاي دلخواه !

توي انجمن هم گشتم ولي آموزشي پيدا نكردم بيشترشون مشكلي داشتن !

و اين كه آيا اين متاباكس ها بعد تعويض قالب ، و اضافه كردن كد هاي متاباكسمون به قالب جديد قابل استفاده هستن !؟‌يا از بين ميرن ؟!‌

1

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


لینک به پست

چه فیلدهایی در متاباکس میخواین بذارین؟ متنی - چک باکس - ....؟

و اینکه این متاباکس برای همه ی پست ها هست یا برای نوع خاصی از پست ها؟

1

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


لینک به پست

سلام !‌ آره براي همه پست ها هست !

دانلود - پيش نمايش - اسكرين شات

0

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


لینک به پست

اگر فیلدها متنوع هستند از افزونه استفاده کنید

به هر حال برای تک فیلد متنی در فایل فانکشن قرار دهید:


/*Adding Meta Boxes to Any Posts*/
add_action( 'add_meta_boxes', 'adding_meta_box' );
function adding_meta_box()
{
add_meta_box( 'meta_box_id', 'اطلاعات پست', 'frst_meta_box', 'post', 'normal', 'high' );
}
function frst_meta_box( $post )
{
$value = get_post_custom( $post->ID );
$text_field = isset( $value['meta_box_text_field'] ) ? esc_attr( $value['meta_box_text_field'][0] ) : '';
wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' );
?>
<p>
<label for="meta_box_text_field">عنوان باکس</label>
<input type="text" name="meta_box_text_field" id="meta_box_text_field" value="<?php echo $text_field; ?>" />
</p>
<?php
}
add_action( 'save_post', 'saving_meta_box' );
function saving_meta_box( $post_id )
{
if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if( !isset( $_POST['meta_box_nonce'] ) || !wp_verify_nonce( $_POST['meta_box_nonce'], 'my_meta_box_nonce' ) ) return;
if( !current_user_can( 'edit_post' ) ) return;
$accepted_field = array(
'a' => array('href' => array() )
);
if( isset( $_POST['meta_box_text_field'] ) )
update_post_meta( $post_id, 'meta_box_text_field', wp_kses( $_POST['meta_box_text_field'], $accepted_field ) );
}

در بین جایی که تگ php بسته و بعد باز شده سایر فیلدها رو اضافه کنید - البته باید در انتهای کد، جایی که ذخیره اتفاق می افته هم باید برای سایر فیلدهایی که اضافه می کنید دستورات ذخیره کردن رو اضافه کنید!

بیشتر:


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

4

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


لینک به پست

برای اینکه در هر قالبی قابل استفاده باشه باید در فایل فانکشن هر قالب اضافه بشه

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

adding-meta-box.php

3

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


لینک به پست

اگر بخواهیم چندین متاباکس برای دسته هایی که ایجاد کردیم اضافه کنیم از کجا باید slug اون دسته خاص رو اضافه کنیم ؟ و 2، 3 تا زیر هم اضافه کنیم باید تکرارش کنیم؟

0

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


لینک به پست
اگر بخواهیم چندین متاباکس برای دسته هایی که ایجاد کردیم اضافه کنیم از کجا باید slug اون دسته خاص رو اضافه کنیم ؟ و 2، 3 تا زیر هم اضافه کنیم باید تکرارش کنیم؟

فکر میکنم باید با id های متفاوت کد تکرار بشه ، برای استفاده از خروجی متاباکسهای ایجاد شده از چه کدی باید استفاده کرد ؟ همون کد نمایش زمینه دلخواه ؟

1

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


لینک به پست

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

اگر بخواهیم چندین متاباکس برای دسته هایی که ایجاد کردیم اضافه کنیم از کجا باید slug اون دسته خاص رو اضافه کنیم ؟ و 2، 3 تا زیر هم اضافه کنیم باید تکرارش کنیم؟

چندین متاباکس یا یک متاباکس با چندین فیلد؟

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

برای یک متاباکس با چندین فیلد ، در زیر همون پست 4 توضیح داده شده

اما اگر منظور اینه که برای یک دسته ی خاص متاباکس ایجاد بشه - چون وقتی وارد افزودن پست میشید هنوز دسته ایی انتخاب نشده که بشه تشخیص داد آیا متاباکس برای این دسته هست یا نیست - برای انجامش 2 راه دارید

1 - استفاده از پست تایپ که در اینصورت میشه متاباکس رو فقط برای پست تایپ بخصوصی اضافه کرد

2 - چند ماه قبل یه آموزش برای ایجاد تمپلیت برای دسته ایی خاص قرار دادم که در اون قبل از ورود به افزودن نوشته، می شد دسته رو انتخاب کرد:

آموزش انتخاب دسته قبل از نوشته

برای استفاده از خروجی متاباکسهای ایجاد شده از چه کدی باید استفاده کرد ؟ همون کد نمایش زمینه دلخواه ؟

بله - مثلاً برای مثال بالا:


<?php echo (get_post_meta($post->ID, "meta_box_text_field", true)); ?>

ویرایش شده در توسط isk
5

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


لینک به پست

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

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

باید تابعی رو هم در فایل سینگل قرار بدم؟

0

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


لینک به پست

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

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

باید تابعی رو هم در فایل سینگل قرار بدم؟

تابعی که در پوسته باید استفاده بشه get_post_meta هست

که نمونه در پست 8 هست

2

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


لینک به پست

اگر فیلدها متنوع هستند از افزونه استفاده کنید

به هر حال برای تک فیلد متنی در فایل فانکشن قرار دهید:


/*Adding Meta Boxes to Any Posts*/
add_action( 'add_meta_boxes', 'adding_meta_box' );
function adding_meta_box()
{
add_meta_box( 'meta_box_id', 'اطلاعات پست', 'frst_meta_box', 'post', 'normal', 'high' );
}
function frst_meta_box( $post )
{
$value = get_post_custom( $post->ID );
$text_field = isset( $value['meta_box_text_field'] ) ? esc_attr( $value['meta_box_text_field'][0] ) : '';
wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' );
?>
<p>
<label for="meta_box_text_field">عنوان باکس</label>
<input type="text" name="meta_box_text_field" id="meta_box_text_field" value="<?php echo $text_field; ?>" />
</p>
<?php
}
add_action( 'save_post', 'saving_meta_box' );
function saving_meta_box( $post_id )
{
if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if( !isset( $_POST['meta_box_nonce'] ) || !wp_verify_nonce( $_POST['meta_box_nonce'], 'my_meta_box_nonce' ) ) return;
if( !current_user_can( 'edit_post' ) ) return;
$accepted_field = array(
'a' => array('href' => array() )
);
if( isset( $_POST['meta_box_text_field'] ) )
update_post_meta( $post_id, 'meta_box_text_field', wp_kses( $_POST['meta_box_text_field'], $accepted_field ) );
}

در بین جایی که تگ php بسته و بعد باز شده سایر فیلدها رو اضافه کنید - البته باید در انتهای کد، جایی که ذخیره اتفاق می افته هم باید برای سایر فیلدهایی که اضافه می کنید دستورات ذخیره کردن رو اضافه کنید!

بیشتر:


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

لطفا 2 تا قیلد به این متاباکس اضافه کنید ، توی قسمت ذخیره اش مشکل دارم .

ممنون

0

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


لینک به پست

/*Adding Meta Boxes to Any Posts*/
add_action( 'add_meta_boxes', 'adding_meta_box' );
function adding_meta_box()
{
add_meta_box( 'meta_box_id', 'اطلاعات پست', 'frst_meta_box', 'post', 'normal', 'high' );
}
function frst_meta_box( $post )
{
$value = get_post_custom( $post->ID );
$text_field_one = isset( $value['meta_box_text_field_one'] ) ? esc_attr( $value['meta_box_text_field_one'][0] ) : '';
$text_field_two = isset( $value['meta_box_text_field_two'] ) ? esc_attr( $value['meta_box_text_field_two'][0] ) : '';
$text_field_three = isset( $value['meta_box_text_field_three'] ) ? esc_attr( $value['meta_box_text_field_three'][0] ) : '';
wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' );
?>
<p>
<label for="meta_box_text_field_one">عنوان باکس</label>
<input type="text" name="meta_box_text_field_one" id="meta_box_text_field_one" value="<?php echo $text_field_one; ?>" />
</p>
<p>
<label for="meta_box_text_field_two">عنوان باکس دوم</label>
<input type="text" name="meta_box_text_field_two" id="meta_box_text_field_two" value="<?php echo $text_field_two; ?>" />
</p>
<p>
<label for="meta_box_text_field_three">عنوان باکس سوم</label>
<input type="text" name="meta_box_text_field_three" id="meta_box_text_field_three" value="<?php echo $text_field_three; ?>" />
</p>
<?php
}
add_action( 'save_post', 'saving_meta_box' );
function saving_meta_box( $post_id )
{
if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if( !isset( $_POST['meta_box_nonce'] ) || !wp_verify_nonce( $_POST['meta_box_nonce'], 'my_meta_box_nonce' ) ) return;
if( !current_user_can( 'edit_post' ) ) return;
$accepted_field = array(
'a' => array('href' => array() )
);
if( isset( $_POST['meta_box_text_field_one'] ) )
update_post_meta( $post_id, 'meta_box_text_field_one', wp_kses( $_POST['meta_box_text_field_one'], $accepted_field ) );
if( isset( $_POST['meta_box_text_field_two'] ) )
update_post_meta( $post_id, 'meta_box_text_field_two', wp_kses( $_POST['meta_box_text_field_two'], $accepted_field ) );
if( isset( $_POST['meta_box_text_field_three'] ) )
update_post_meta( $post_id, 'meta_box_text_field_three', wp_kses( $_POST['meta_box_text_field_three'], $accepted_field ) );
}

5

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


لینک به پست

سلام

خسته نباشید

یه سئوال داشتم

میخوام داخل متاباکس هام یک فیلد برای آپلود باشه

همچین کاری رو میشه کرد؟؟

0

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


لینک به پست

سلام

خسته نباشید

یه سئوال داشتم

میخوام داخل متاباکس هام یک فیلد برای آپلود باشه

همچین کاری رو میشه کرد؟؟

http://code.tutsplus.com/articles/attaching-files-to-your-posts-using-wordpress-custom-meta-boxes-part-1--wp-22291

1

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


لینک به پست

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

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

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

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


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

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

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


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