رفتن به مطلب

ذخیره نشدن متاباکس


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

سلام

من تو انجمن سرچ کردم، این مشکل قبلا مطرح شده

منتهی با جواب های موجود نتونستم مشکل رو حل کنم

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

add_action( 'add_meta_boxes', 'cd_meta_box_add' );
function cd_meta_box_add()
{
add_meta_box( 'my-meta-box-id', 'My First Meta Box', 'cd_meta_box_cb', 'post', 'normal', 'high' );
}

function cd_meta_box_cb()
{
echo '<label for="my_meta_box_text"></label>
<textarea name="my_meta_box_text" id="my_meta_box_text" cols="100" row="3" ></textarea>';
}
add_action( 'save_post', 'cd_meta_box_save' );
function cd_meta_box_save( $post_id )
{
// Bail if we're doing an auto save
if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;

// if our nonce isn't there, or we can't verify it, bail
if( !isset( $_POST['meta_box_nonce'] ) || !wp_verify_nonce( $_POST['meta_box_nonce'], 'my_meta_box_nonce' ) ) return;

// if our current user can't edit this post, bail
if( !current_user_can( 'edit_post' ) ) return;

// now we can actually save the data
$allowed = array(
'a' => array( // on allow a tags
'href' => array() // and those anchors can only have href attribute
)
);

// Make sure your data is set before trying to save it
if( isset( $_POST['my_meta_box_text'] ) )
update_post_meta( $post_id, 'my_meta_box_text', wp_kses( $_POST['my_meta_box_text'], $allowed ) );

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

// This is purely my personal preference for saving check-boxes
$chk = isset( $_POST['my_meta_box_check'] ) && $_POST['my_meta_box_select'] ? 'on' : 'off';
update_post_meta( $post_id, 'my_meta_box_check', $chk );
}

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

خب شما تابع cd_meta_box_cb خودتونو با تابع زیر عوض کنید

مشکل شما در کد کاملا گویا هست


function cd_meta_box_cb()
{
global $post;
$custom = get_post_custom($post->ID);
$my_meta_box_text = $custom["my_meta_box_text"][0];
echo "<label for='my_meta_box_text'></label>
<textarea name='my_meta_box_text' id='my_meta_box_text' cols='100' row='3' >$my_meta_box_text</textarea>";
}

لینک به ارسال

خب شما تابع cd_meta_box_cb خودتونو با تابع زیر عوض کنید

مشکل شما در کد کاملا گویا هست


function cd_meta_box_cb()
{
global $post;
$custom = get_post_custom($post->ID);
$my_meta_box_text = $custom["my_meta_box_text"][0];
echo "<label for='my_meta_box_text'></label>
<textarea name='my_meta_box_text' id='my_meta_box_text' cols='100' row='3' >$my_meta_box_text</textarea>";
}

ممنون

ولی درست نشد

بعد از انتشار، متن هم پاک میشه

لینک به ارسال

ظاهرا کدتونو از جای کپی کردید

کدتونو به صورت زیر تغییر بدید

function cd_meta_box_save( $post_id )
{
// Make sure your data is set before trying to save it
if( isset( $_POST['my_meta_box_text'] ) )
update_post_meta( $post_id, 'my_meta_box_text',$_POST['my_meta_box_text']);
}

function cd_meta_box_cb()
{
global $post;
$custom = get_post_custom($post->ID);
$my_meta_box_text = $custom["my_meta_box_text"];
echo "<label for='my_meta_box_text'></label>
<textarea name='my_meta_box_text' id='my_meta_box_text' cols='100' row='3' >$my_meta_box_text</textarea>";
}

لینکهای زیر میتونه کمکتون کنه


http://wp.tutsplus.com/tutorials/plugins/how-to-create-custom-wordpress-writemeta-boxes/
http://rudrastyh.com/wordpress/meta-boxes.html

لینک به ارسال

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

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

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

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

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

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

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

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

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