رفتن به مطلب

مشکل در متاباکس


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

با سلام بنده یک متاباکس ایجاد کردم :


<?php
/*
Plugin Name: Meta Box Example
Plugin URI: http://wp.tutsplus.com/
Description: Adds an example meta box to wordpress.
Version: None
Author: Christopher Davis
Author URI: http://wp.tutsplus.com/
License: Public Domain
*/
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( $post )
{
$values = get_post_custom( $post->ID );
$text = isset( $values['my_meta_box_text'] ) ? esc_attr( $values['my_meta_box_text'][0] ) : '';
$selected = isset( $values['my_meta_box_select'] ) ? esc_attr( $values['my_meta_box_select'][0] ) : '';
$check = isset( $values['my_meta_box_check'] ) ? esc_attr( $values['my_meta_box_check'][0] ) : '';
wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' );
?>
<p>
<label for="my_meta_box_text">Film Name :</label>
<input type="text" name="my_meta_box_text" id="my_meta_box_text" value="<?php echo $text; ?>" />
</p>

<p>
<label for="my_meta_box_select">Quality</label>
<select name="my_meta_box_select" id="my_meta_box_select">
<option value="red" <?php selected( $selected, 'red' ); ?>>720p</option>
<option value="blue" <?php selected( $selected, 'blue' ); ?>>1080p</option>
</select>
</p>
<p>
<input type="checkbox" name="my_meta_box_check" id="my_meta_box_check" <?php checked( $check, 'on' ); ?> />
<label for="my_meta_box_check">Don't Check This.</label>
</p>

<?php
}

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 anchords can only have href attribute
)
);

// Probably a good idea to make sure your data is set
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 checkboxes
$chk = ( isset( $_POST['my_meta_box_check'] ) && $_POST['my_meta_box_check'] ) ? 'on' : 'off';
update_post_meta( $post_id, 'my_meta_box_check', $chk );
}
?>

<?php

حالا چجوری باید my_meta_box_text رو در فایل single قرار بدم که مثلا هنگام پست مطالب , ارسال کننده نام فیلم رو داخل متاباکس

Filmname تایپ کنه !

مثال : من تصویر شاخص رو اینجوری قرار دادم :


<div class="post-image"><?php if ( has_post_thumbnail()) the_post_thumbnail('home-thumb'); ?></div>

و اسم فیلم رو اینحوری :


<p> FilmName : Spiderman </p>

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

چی کار کنم ؟

لینک به ارسال


http://www.wproots.com/complex-meta-boxes-in-wordpress/

تشکر ولی زبانم خوب نیست ! بعنی یک آموزش ساخت متاباکس برای جعبه دانلود نیست ؟

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


<?php
if(get_post_meta($post->ID, 'my_meta_box_select')) {
echo get_post_meta($post->ID, 'my_meta_box_select', true);
}
?>

بسیار ممنون اما یه مشکلی هست ! مشکل اینجاست که این تابع فقط قسمت های select رو فراخوانی میکنه و قسمت های input رو فراخوانی نمیکنه .

اول فکر کردم اگر Ture رو از آخرش بردارم درست میشه , اما اون موقع فقط اکو میکنه Array ! ممنون میشم راهنمایی کنید :wub:

به طرز عجیبی حل شد ! :D

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

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

مشکل اینجاست که تمامی value ها :


<input type="text" name="_stars" id="_stars" value="<?php echo $text; ?>"4/>

به value آخرین کد معرفی تغییر میکنه ! یکم واضح تر بگم این کد رو ببینید :


$values = get_post_custom( $post->ID );
$selected = isset( $values['_rating'] ) ? esc_attr( $values['_rating'][0] ) : '';
$selected = isset( $values['_quality'] ) ? esc_attr( $values['_quality'][0] ) : '';
$selected = isset( $values['_country'] ) ? esc_attr( $values['_country'][0] ) : '';
$text = isset( $values['_director'] ) ? esc_attr( $values['_director'][0] ) : '';
$text = isset( $values['_time'] ) ? esc_attr( $values['_time'][0] ) : '';
$text = isset( $values['_genre'] ) ? esc_attr( $values['_genre'][0] ) : '';
$text = isset( $values['_volume'] ) ? esc_attr( $values['_volume'][0] ) : '';
$text = isset( $values['_stars'] ) ? esc_attr( $values['_stars'][0] ) : '';

یعنی همه value ها به _stars که آخرین فیلد هست تغییر میکنه ! مثلا اگر جاشونو عوض کنم و جای آخرین کد که _stars هست _director بزارم همه ی value ها به اون تغییر میکنن ! ممنون میشم راهنمایی کنید

اینم سورس کل functions.php :


<?php add_theme_support( 'post-thumbnails' ); ?>
<?php
/*
Plugin Name: Movie Detail Meta Box
Plugin URI: http://wp.tutsplus.com/
Description: Movie Detail Meta Box
Version: 1.1
Author: Christopher Davis
Author URI: http://wp.tutsplus.com/
License: Public Domain
*/
add_action( 'add_meta_boxes', 'cd_meta_box_add' );
function cd_meta_box_add()
{
add_meta_box( 'post-detail', 'Post Detail', 'cd_meta_box_cb', 'post', 'normal', 'high' );
}
function cd_meta_box_cb( $post )
{
$values = get_post_custom( $post->ID );
$selected = isset( $values['_rating'] ) ? esc_attr( $values['_rating'][0] ) : '';
$selected = isset( $values['_quality'] ) ? esc_attr( $values['_quality'][0] ) : '';
$selected = isset( $values['_country'] ) ? esc_attr( $values['_country'][0] ) : '';
$text = isset( $values['_director'] ) ? esc_attr( $values['_director'][0] ) : '';
$text = isset( $values['_time'] ) ? esc_attr( $values['_time'][0] ) : '';
$text = isset( $values['_genre'] ) ? esc_attr( $values['_genre'][0] ) : '';
$text = isset( $values['_volume'] ) ? esc_attr( $values['_volume'][0] ) : '';
$text = isset( $values['_stars'] ) ? esc_attr( $values['_stars'][0] ) : '';
wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' );
?>
<style>
#post-detail input
{
width:90%;
float:right;
}
#post-detail select
{
width:90%;
float:right;
}
#post-detail
{
padding:0 0 100px;
}
</style>

<label for="_rating">Rating</label>
<select name="_rating" id="_rating">
<option value="10" <?php selected( $selected, '10' ); ?>>10</option>
<option value="9.9" <?php selected( $selected, '9.9' ); ?>>9.9</option>
<option value="9.8" <?php selected( $selected, '9.8' ); ?>>9.8</option>
<option value="9.7" <?php selected( $selected, '9.7' ); ?>>9.7</option>
<option value="9.6" <?php selected( $selected, '9.6' ); ?>>9.6</option>
<option value="9.5" <?php selected( $selected, '9.5' ); ?>>9.5</option>
<option value="9.4" <?php selected( $selected, '9.4' ); ?>>9.4</option>
<option value="9.3" <?php selected( $selected, '9.3' ); ?>>9.3</option>
<option value="9.2" <?php selected( $selected, '9.2' ); ?>>9.2</option>
<option value="9.1" <?php selected( $selected, '9.1' ); ?>>9.1</option>
<option value="9" <?php selected( $selected, '9' ); ?>>9</option>
<option value="8.9" <?php selected( $selected, '8.9' ); ?>>8.9</option>
<option value="8.8" <?php selected( $selected, '8.8' ); ?>>8.8</option>
<option value="8.7" <?php selected( $selected, '8.7' ); ?>>8.7</option>
<option value="8.6" <?php selected( $selected, '8.6' ); ?>>8.6</option>
<option value="8.5" <?php selected( $selected, '8.5' ); ?>>8.5</option>
<option value="8.4" <?php selected( $selected, '8.4' ); ?>>8.4</option>
<option value="8.3" <?php selected( $selected, '8.3' ); ?>>8.3</option>
<option value="8.2" <?php selected( $selected, '8.2' ); ?>>8.2</option>
<option value="8.1" <?php selected( $selected, '8.1' ); ?>>8.1</option>
<option value="8" <?php selected( $selected, '8' ); ?>>8</option>
<option value="7.9" <?php selected( $selected, '7.9' ); ?>>7.9</option>
<option value="7.8" <?php selected( $selected, '7.8' ); ?>>7.8</option>
<option value="7.7" <?php selected( $selected, '7.7' ); ?>>7.7</option>
<option value="7.6" <?php selected( $selected, '7.6' ); ?>>7.6</option>
<option value="7.5" <?php selected( $selected, '7.5' ); ?>>7.5</option>
<option value="7.4" <?php selected( $selected, '7.4' ); ?>>7.4</option>
<option value="7.3" <?php selected( $selected, '7.3' ); ?>>7.3</option>
<option value="7.2" <?php selected( $selected, '7.2' ); ?>>7.2</option>
<option value="7.1" <?php selected( $selected, '7.1' ); ?>>7.1</option>
<option value="7" <?php selected( $selected, '7' ); ?>>7</option>
<option value="6.9" <?php selected( $selected, '6.9' ); ?>>6.9</option>
<option value=">6.8" <?php selected( $selected, '>6.8' ); ?>>6.8</option>
<option value="6.7" <?php selected( $selected, '6.7' ); ?>>6.7</option>
<option value="6.6" <?php selected( $selected, 'Action' ); ?>>6.6</option>
<option value="6.5" <?php selected( $selected, 'Action' ); ?>>6.5</option>
<option value="6.4" <?php selected( $selected, 'Action' ); ?>>6.4</option>
<option value="6.3" <?php selected( $selected, 'Action' ); ?>>6.3</option>
<option value="6.2" <?php selected( $selected, '6.2' ); ?>>6.2</option>
<option value="6.1" <?php selected( $selected, '6.1' ); ?>>6.1</option>
<option value="6" <?php selected( $selected, '6' ); ?>>6</option>
<option value="5.9" <?php selected( $selected, '5.9' ); ?>>5.9</option>
<option value="5.8" <?php selected( $selected, '5.8' ); ?>>5.8</option>
<option value="5.7" <?php selected( $selected, '5.7' ); ?>>5.7</option>
<option value="5.6" <?php selected( $selected, '5.6' ); ?>>5.6</option>
<option value="5.5" <?php selected( $selected, '5.5' ); ?>>5.5</option>
<option value="5.4" <?php selected( $selected, '5.4' ); ?>>5.4</option>
<option value="5.3" <?php selected( $selected, '5.3' ); ?>>5.3</option>
<option value="5.2" <?php selected( $selected, '5.2' ); ?>>5.2</option>
<option value="5.1" <?php selected( $selected, '5.1' ); ?>>5.1</option>
<option value="5" <?php selected( $selected, '5' ); ?>>5</option>
<option value="4.9" <?php selected( $selected, 'Action' ); ?>>4.9</option>
<option value="4.8" <?php selected( $selected, '4.8' ); ?>>4.8</option>
<option value="4.7" <?php selected( $selected, '4.7' ); ?>>4.7</option>
<option value="4.6" <?php selected( $selected, '4.6' ); ?>>4.6</option>
<option value="4.5" <?php selected( $selected, '4.5' ); ?>>4.5</option>
<option value="4.4" <?php selected( $selected, '4.4' ); ?>>4.4</option>
<option value="4.3" <?php selected( $selected, '4.3' ); ?>>4.3</option>
<option value="4.2" <?php selected( $selected, '4.2' ); ?>>4.2</option>
<option value="4.1" <?php selected( $selected, '4.1' ); ?>>4.1</option>
<option value="4" <?php selected( $selected, '4' ); ?>>4</option>
<option value="3.9" <?php selected( $selected, '3.9' ); ?>>3.9</option>
<option value="3.8" <?php selected( $selected, '3.8' ); ?>>3.8</option>
<option value="3.7" <?php selected( $selected, '3.7' ); ?>>3.7</option>
<option value="3.6" <?php selected( $selected, '3.6' ); ?>>3.6</option>
<option value="3.5" <?php selected( $selected, '3.5' ); ?>>3.5</option>
<option value="3.4" <?php selected( $selected, '3.4' ); ?>>3.4</option>
<option value="3.3" <?php selected( $selected, '3.3' ); ?>>3.3</option>
<option value="3.2" <?php selected( $selected, '3.2' ); ?>>3.2</option>
<option value="3.1" <?php selected( $selected, '3.1' ); ?>>3.1</option>
<option value="3" <?php selected( $selected, '3' ); ?>>3</option>
<option value="2.9" <?php selected( $selected, '2.9' ); ?>>2.9</option>
<option value="2.8" <?php selected( $selected, '2.8' ); ?>>2.8</option>
<option value="2.7" <?php selected( $selected, '2.7' ); ?>>2.7</option>
<option value="2.6" <?php selected( $selected, '2.6' ); ?>>2.6</option>
<option value="2.5" <?php selected( $selected, '2.5' ); ?>>2.5</option>
<option value="2.4" <?php selected( $selected, '2.4' ); ?>>2.4</option>
<option value="2.3" <?php selected( $selected, '2.3' ); ?>>2.3</option>
<option value="2.2" <?php selected( $selected, '2.2' ); ?>>2.2</option>
<option value="2.1" <?php selected( $selected, '2.1' ); ?>>2.1</option>
<option value="2" <?php selected( $selected, '2' ); ?>>2</option>
<option value="1.9" <?php selected( $selected, '1.9' ); ?>>1.9</option>
<option value="1.8" <?php selected( $selected, '1.8' ); ?>>1.8</option>
<option value="1.7" <?php selected( $selected, '1.7' ); ?>>1.7</option>
<option value="1.6" <?php selected( $selected, '1.6' ); ?>>1.6</option>
<option value="1.5" <?php selected( $selected, '1.5' ); ?>>1.5</option>
<option value="1.4" <?php selected( $selected, '1.4' ); ?>>1.4</option>
<option value="v" <?php selected( $selected, '1.3' ); ?>>1.3</option>
<option value="1.2" <?php selected( $selected, '1.2' ); ?>>1.2</option>
<option value="1.1" <?php selected( $selected, '1.1' ); ?>>1.1</option>
<option value="1" <?php selected( $selected, '1' ); ?>>1</option>
<option value="No Rating" <?php selected( $selected, 'No Rating' ); ?>>No Rating</option>
</select>
</p>
<p>
<label for="_quality">Quality </label>
<select name="_quality" id="_quality">
<option value="Cam" <?php selected( $selected, 'Cam' ); ?>>Cam</option>
<option value="TS" <?php selected( $selected, 'TS' ); ?>>TS</option>
<option value="R5" <?php selected( $selected, 'R5' ); ?>>R5</option>
<option value="DVDScr" <?php selected( $selected, 'DVDScr' ); ?>>DVDScr</option>
<option value="DVDRip" <?php selected( $selected, 'DVDRip' ); ?>>DVDRip</option>
<option value="BDRip" <?php selected( $selected, 'BDRip' ); ?>>BDRip</option>
<option value="Bluray 480p" <?php selected( $selected, 'Bluray 480p' ); ?>>Bluray 480p</option>
<option value="Bluray 720p" <?php selected( $selected, 'Bluray 720p' ); ?>>Bluray 720p</option>
<option value="Bluray 1080p" <?php selected( $selected, 'Bluray 1080p' ); ?>>Bluray 1080p</option>
<option value="3D" <?php selected( $selected, '3D' ); ?>>3D</option>
<option value="WEb RIp" <?php selected( $selected, 'WEb RIp' ); ?>>WEb RIp</option>
<option value="HDRip" <?php selected( $selected, 'HDRip' ); ?>>HDRip</option>
<option value="High Definition" <?php selected( $selected, 'High Definition' ); ?>>High Definition</option>
<option value="WEB-DL 720p" <?php selected( $selected, 'WEB-DL 720p' ); ?>>WEB-DL 720p</option>
<option value="HD" <?php selected( $selected, 'HD' ); ?>>HD</option>
<option value="Full HD" <?php selected( $selected, 'Full HD' ); ?>>Full HD</option>
</select>
</p>

<p>
<label for="_country">Country</label>
<select name="_country" id="_country">
<option value="America" <?php selected( $selected, 'America' ); ?>>America</option>
<option value="Australia" <?php selected( $selected, 'Australia' ); ?>>Australia</option>
<option value="Italy" <?php selected( $selected, 'Italy' ); ?>>Italy</option>
<option value="IRAn" <?php selected( $selected, 'IRAn' ); ?>>IRAn</option>
<option value="India" <?php selected( $selected, 'India' ); ?>>India</option>
<option value="Japan" <?php selected( $selected, 'Japan' ); ?>>Japan</option>
<option value="China" <?php selected( $selected, 'China' ); ?>>China</option>
<option value="France" <?php selected( $selected, 'France' ); ?>>France</option>
<option value="Spain" <?php selected( $selected, 'Spain' ); ?>>Spain</option>
<option value="South Korea" <?php selected( $selected, 'South Korea' ); ?>>South Korea</option>
<option value="Saudi Arabia" <?php selected( $selected, 'Saudi Arabia' ); ?>>Saudi Arabia</option>
<option value="Turkey" <?php selected( $selected, 'Turkey' ); ?>>Turkey</option>
<option value="Netherlands" <?php selected( $selected, 'Netherlands' ); ?>>Netherlands</option>
<option value="Mexico" <?php selected( $selected, 'Mexico' ); ?>>Mexico</option>
<option value="Ireland" <?php selected( $selected, 'Ireland' ); ?>>Ireland</option>
<option value="Austria" <?php selected( $selected, 'Austria' ); ?>>Austria</option>
<option value="New Zealand" <?php selected( $selected, 'New Zealand' ); ?>>New Zealand</option>
<option value="Norway" <?php selected( $selected, 'Norway' ); ?>>Norway</option>
<option value="Sweden" <?php selected( $selected, 'Sweden' ); ?>>Sweden</option>
</select>
</p>
<p>
<label for="_genre">Genre</label>
<input type="text" name="_genre" id="_genre" value="<?php echo $text; ?>" />
</p>
<p>
<label for="_director">Director</label>
<input type="text" name="_director" id="_director" value="<?php echo $text; ?>" />
</p>
<p>
<label for="_stars">Stars</label>
<input type="text" name="_stars" id="_stars" value="<?php echo $text; ?>"4/>
</p>
<p>
<label for="_volume">Volume</label>
<input type="text" name="_volume" id="_volume" value="<?php echo $text; ?>"4/>
</p>
<p>
<label for="_time">Time</label>
<input type="text" name="_time" id="_time" value="<?php echo $text; ?>"4/>
</p>

<?php
}
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 anchords can only have href attribute
)
);
if( isset( $_POST['_director'] ) )
update_post_meta( $post_id, '_director', wp_kses( $_POST['_director'], $allowed ) );

if( isset( $_POST['_time'] ) )
update_post_meta( $post_id, '_time', wp_kses( $_POST['_time'], $allowed ) );
if( isset( $_POST['_genre'] ) )
update_post_meta( $post_id, '_genre', wp_kses( $_POST['_genre'], $allowed ) );
if( isset( $_POST['_volume'] ) )
update_post_meta( $post_id, '_volume', wp_kses( $_POST['_volume'], $allowed ) );

if( isset( $_POST['_stars'] ) )
update_post_meta( $post_id, '_stars', wp_kses( $_POST['_stars'], $allowed ) );
if( isset( $_POST['_rating'] ) )
update_post_meta( $post_id, '_rating', esc_attr( $_POST['_rating'] ) );

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



} ?>

لینک به ارسال

$values = get_post_custom( $post->ID );
$selected1 = isset( $values['_rating'] ) ? esc_attr( $values['_rating'][0] ) : '';
$selected2 = isset( $values['_quality'] ) ? esc_attr( $values['_quality'][0] ) : '';
$selected3 = isset( $values['_country'] ) ? esc_attr( $values['_country'][0] ) : '';
$text0 = isset( $values['_director'] ) ? esc_attr( $values['_director'][0] ) : '';
$text1 = isset( $values['_time'] ) ? esc_attr( $values['_time'][0] ) : '';
$text2 = isset( $values['_genre'] ) ? esc_attr( $values['_genre'][0] ) : '';
$text3 = isset( $values['_volume'] ) ? esc_attr( $values['_volume'][0] ) : '';
$text4 = isset( $values['_stars'] ) ? esc_attr( $values['_stars'][0] ) : '';

لینک به ارسال

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

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

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

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

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

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

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

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

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