• اطلاعیه ها

    • Saeed Fard

      برگزاری میتاپ وردپرسی   14/08/96

      بعد از اولین دوره همایش وردپرس در ایران اگر پیگیر اخبار وردپرس بوده باشید، حتما خبر برگزاری چندین میتاپ و جلسه متعدد وردپرسی را شنیده‌اید، یکی از بحث‌های اصلی که محور اصلی این میتاپ‌ها بوده است برگزاری وردکمپ بود که به طور جدی دنبال می‌شود. این میتاپ‌ها و جلسات توسط جمعی از فعلان حوزه وردپرس در کنار وردپرس‌پارسی برگزار می‌شد و مسائل مربوط به این حیطه و از جمله وردکمپ مورد بحث قرار می‌گرفت. این بار با رایزنی‌هایی که با تیم اصلی وردپرس داشتیم در بخش دوم این رویدادها قصد داریم که میتاپ‌ها و جلسات وردپرسی را به صورت آزاد برگزار کنیم تا تمامی علاقه‌مندان و دوست‌داران وردپرس فرصت حضور داشته باشند و با گردهمایی، جامعه کاملتری از دوست داران وردپرس بسازیم و از تجربیات یکدیگر استفاده کنیم.   بدیهی است که این رویدادها با رویکرد مثبت در جهت سود رسانی به جامعه وردپرس و افراد حاضر در آن برگزار می‌شود و برای تمامی علاقه‌مندان به وردپرس است. پس اگر یک کاربر معمولی وردپرس یا یک توسعه دهنده هستید می‌توانید در این رویدادها شرکت کنید. ما در ملاقات‌هایمان از موارد مختلف و کاربردی وردپرس صحبت می‌کنیم و علاقمند به توسعه هر چه بیشتر وردپرس در ایران هستیم. ما وردپرس را دوست داریم. عضویت در این گروه برای همه افرادی که مایل به پیوستن هستند بدون در نظرگرفتن توانایی‌ها، مهارت‌ها، وضعیت مالی و یا معیارهای دیگر باز و رایگان است. فضای میتاپ‌ها و جلسات ما دوستانه و آزادنه و دور از هرگونه تبعیض و رفتارهای زننده است. بر این اساس از تمامی دوستانی که علاقه‌مند به شرکت در میتاپ‌های وردپرس هستند دعوت می‌شود تا از طریق لینک زیر در سایت میتاپ اقدام به ثبت‌نام کنند و منتظر خبرهای برگزاری جلسات در آینده باشند . لینک ثبت نام و عضویت : https://www.meetup.com/Iran-WordPress-Meetup    
Siaavash

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

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

با استفاده از این آموزش یک متاباکس ساختم:

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 is already set, and contains an object: the WordPress post
    global $post;
    $values = get_post_custom( $post->ID );
    $text = isset( $values['my_meta_box_text'] ) ? $values['my_meta_box_text'] : '';
    $selected = isset( $values['my_meta_box_select'] ) ? esc_attr( $values['my_meta_box_select'] ) : '';
    $check = isset( $values['my_meta_box_check'] ) ? esc_attr( $values['my_meta_box_check'] ) : '';
     
    // We'll use this nonce field later on when saving.
    wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' );
    ?>
    <p>
        <label for="my_meta_box_text">Text Label</label>
        <input type="text" name="my_meta_box_text" id="my_meta_box_text" value="<?php echo $text; ?>" />
    </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 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 ) );
         
}

 

به جز یک مورد همه موارد درسته!

اون یک مورد هم اینه که در صفحه ارسال/ویرایش مطلب بعد از اینکه باکس مربوطه رو پر می کنم و دکمه به روز رسانی رو می زنم، صفحه که دوباره لود می شه، داخل باکس متنی که نوشتم رو نمایش نمی ده! و کلمه "Array" نمایش داده شده!

مشکل از کجاست؟

0

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


لینک به پست

به جای کد بالا از این کد استفاده کنید.

<?php
function specials_posts(){
    add_meta_box('add_meta_title','آگهی ویژه','add_specials_posts','post','normal','high');
}
add_action('add_meta_boxes','specials_posts');

function add_specials_posts(){
    global $post;
?>
    <div class="">
        <?php global $post; ?>
        <table>
            <tr>
                <td>متن :</td>
                <td><input type="text" name="text" value="<?php echo	get_post_meta($post->ID,'_text',true); ?>" /></td>        
            </tr>
        </table>
    </div>
<?php
}
function save_post_information(){
    global $post;
    if(isset($_POST['text'])){
        update_post_meta($post->ID,'_text',$_POST['text']);        
    }          
}
add_action('save_post','save_post_information');     
?>

 

1

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


لینک به پست

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

در 14 دقیقه قبل، Mirrajabi گفته است :

به جای کد بالا از این کد استفاده کنید.


<?php
function specials_posts(){
    add_meta_box('add_meta_title','آگهی ویژه','add_specials_posts','post','normal','high');
}
add_action('add_meta_boxes','specials_posts');

function add_specials_posts(){
    global $post;
?>
    <div class="">
        <?php global $post; ?>
        <table>
            <tr>
                <td>متن :</td>
                <td><input type="text" name="text" value="<?php echo	get_post_meta($post->ID,'_text',true); ?>" /></td>        
            </tr>
        </table>
    </div>
<?php
}
function save_post_information(){
    global $post;
    if(isset($_POST['text'])){
        update_post_meta($post->ID,'_text',$_POST['text']);        
    }          
}
add_action('save_post','save_post_information');     
?>

 

ممنون.

فقط می شه توضیح بدید مشکل کد قبلی چی بود؟

و اینکه اگر مقدوره یک توضیح کوتاه در مورد این کدها بدید.

 

یک دراپ باکس و یک چک باکس هم دارم!

اونا رو چی کار کنم؟

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

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


لینک به پست
function specials_posts(){
    add_meta_box('add_meta_title','آگهی ویژه','add_specials_posts','post','normal','high');
}
add_action('add_meta_boxes','specials_posts');

function add_specials_posts(){
    global $post;
?>
    <div class="">
        <?php global $post; ?>
        <table>
            <tr>
                    <td> آگهی ویژه :</td>
                    <td><input type="checkbox" name="show_special" <?php if( get_post_meta($post->ID,'_show_special',true)) echo 'checked'; ?> value="1" /></td>
            </tr>

            <tr>
                <td>متن :</td>
                <td><input type="text" name="text" value="<?php echo get_post_meta($post->ID,'_text',true); ?>" /></td>        
            </tr>
            <tr>
                <td><label>لیبل : </label></td>
                <td>
              
               
                                <?php $up_date=get_post_meta($post->ID, '_update_postt', true); ?>
                                <select name="update_postt" id="update_postt" style="height:35px;width: 215px;">
                                  <option value="green" <?php if($up_date == 'green'){ echo 'selected';} ?>>سبز</option>
                                  <option value="blue" <?php if($up_date == 'blue'){ echo 'selected';} ?>>آبی</option>
                                  <option value="orange" <?php if($up_date == 'orange'){ echo 'selected';} ?>>نارنجی</option>
                                  <option value="yellow" <?php if($up_date == 'yellow'){ echo 'selected';} ?>>زرد</option>
                                  <option value="red" <?php if($up_date == 'red'){ echo 'selected';} ?>>قرمز</option>
                                  <option value="gray" <?php if($up_date == 'gray'){ echo 'selected';} ?>>خاکستری</option>
                                </select>
                    </td>
             </tr>
        </table>
    </div>
<?php
}
function save_video_information(){
    global $post;
    if(isset($_POST['text'])){
        update_post_meta($post->ID,'_text',$_POST['text']);        
    }
    if(isset($_POST['update_postt'])){
        update_post_meta($post->ID,'_update_postt',$_POST['update_postt']);
    }   
         update_post_meta($post->ID,'_show_special',$_POST['show_special']);          
}
add_action('save_post','save_video_information');     

به جای کد قبلی از این کد استفاده کنید. هم دراپ باکس و هم چک باکس اضافه شده .

مشکل از $post->id بود.

1

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


لینک به پست
در ۱ ساعت قبل، Mirrajabi گفته است :

function specials_posts(){
    add_meta_box('add_meta_title','آگهی ویژه','add_specials_posts','post','normal','high');
}
add_action('add_meta_boxes','specials_posts');

function add_specials_posts(){
    global $post;
?>
    <div class="">
        <?php global $post; ?>
        <table>
            <tr>
                    <td> آگهی ویژه :</td>
                    <td><input type="checkbox" name="show_special" <?php if( get_post_meta($post->ID,'_show_special',true)) echo 'checked'; ?> value="1" /></td>
            </tr>

            <tr>
                <td>متن :</td>
                <td><input type="text" name="text" value="<?php echo get_post_meta($post->ID,'_text',true); ?>" /></td>        
            </tr>
            <tr>
                <td><label>لیبل : </label></td>
                <td>
              
               
                                <?php $up_date=get_post_meta($post->ID, '_update_postt', true); ?>
                                <select name="update_postt" id="update_postt" style="height:35px;width: 215px;">
                                  <option value="green" <?php if($up_date == 'green'){ echo 'selected';} ?>>سبز</option>
                                  <option value="blue" <?php if($up_date == 'blue'){ echo 'selected';} ?>>آبی</option>
                                  <option value="orange" <?php if($up_date == 'orange'){ echo 'selected';} ?>>نارنجی</option>
                                  <option value="yellow" <?php if($up_date == 'yellow'){ echo 'selected';} ?>>زرد</option>
                                  <option value="red" <?php if($up_date == 'red'){ echo 'selected';} ?>>قرمز</option>
                                  <option value="gray" <?php if($up_date == 'gray'){ echo 'selected';} ?>>خاکستری</option>
                                </select>
                    </td>
             </tr>
        </table>
    </div>
<?php
}
function save_video_information(){
    global $post;
    if(isset($_POST['text'])){
        update_post_meta($post->ID,'_text',$_POST['text']);        
    }
    if(isset($_POST['update_postt'])){
        update_post_meta($post->ID,'_update_postt',$_POST['update_postt']);
    }   
         update_post_meta($post->ID,'_show_special',$_POST['show_special']);          
}
add_action('save_post','save_video_information');     

به جای کد قبلی از این کد استفاده کنید. هم دراپ باکس و هم چک باکس اضافه شده .

مشکل از $post->id بود.

الآن اگه چک باکس رو اول تیک بزنم و به روز رسانی کنم بعد بخوام تیک رو حذف کنم، نمی شه!

اون قسمت چک باکس شرطش کامل و درسته؟

0

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


لینک به پست

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

الآن اگه چک باکس رو اول تیک بزنم و به روز رسانی کنم بعد بخوام تیک رو حذف کنم، نمی شه!

من همین الان یک تیک زدم بروز رسانی کردم بعد تیک برداشتم دوباره بروزرسانی کردم تیک برداشته شد. مشکلی نبود.

اون طرف هم برای نمایش :

	       <?php
                global $post;
                if (get_post_meta($post->ID,'_show_special',true) == '1') {
                	echo 'نمایش پست';
                }	?>

 

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

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


لینک به پست
در 27 دقیقه قبل، Mirrajabi گفته است :

الآن اگه چک باکس رو اول تیک بزنم و به روز رسانی کنم بعد بخوام تیک رو حذف کنم، نمی شه!

من همین الان یک تیک زدم بروز رسانی کردم بعد تیک برداشتم دوباره بروزرسانی کردم تیک برداشته شد. مشکلی نبود.

اون طرف هم برای نمایش :


	       <?php
                global $post;
                if (get_post_meta($post->ID,'_show_special',true) == '1') {
                	echo 'نمایش پست';
                }	?>

 

این کدیه که من قرار دادم:

<td><input type="checkbox" name="show_special" <?php if( get_post_meta($post->ID,'_show_special',true)) echo 'checked'; ?> value="هشدار" /></td>

این کد وقتی برقرار باشه کد زیر رو برقرار می کنه درسته؟

echo 'checked'

در صورت عدم برقراری شرط چی؟!

0

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


لینک به پست
در 7 دقیقه قبل، Siaavash گفته است :

این کدیه که من قرار دادم:


<td><input type="checkbox" name="show_special" <?php if( get_post_meta($post->ID,'_show_special',true)) echo 'checked'; ?> value="هشدار" /></td>

این کد وقتی برقرار باشه کد زیر رو برقرار می کنه درسته؟


echo 'checked'

در صورت عدم برقراری شرط چی؟!

checked چون خودم تو کدهام نیاز داشتم  چون می خواستم جی کوئری استفاده کنم شما هم اگه نیاز دارید می تونید یک else اضافه کنید .

مثال:

                 <?php if( get_post_meta($post->ID,'_show_special',true)) {echo 'checked'; } else { echo 'notchecked';}?> value="هشدار" />

شما دقیقا می خواید چیکار کنید ؟

ببینید الان اگه تیک بزنید  مقدار get_post_meta($post->ID,'_show_special',true) ,هشدار  در دیتابیس ذخیره می کنه  ولی اگر تیک بردارید مقدار null ذخیره میشه .

1

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


لینک به پست
در 26 دقیقه قبل، Mirrajabi گفته است :

checked چون خودم تو کدهام نیاز داشتم  چون می خواستم جی کوئری استفاده کنم شما هم اگه نیاز دارید می تونید یک else اضافه کنید .

مثال:


                 <?php if( get_post_meta($post->ID,'_show_special',true)) {echo 'checked'; } else { echo 'notchecked';}?> value="هشدار" />

شما دقیقا می خواید چیکار کنید ؟

ببینید الان اگه تیک بزنید  مقدار get_post_meta($post->ID,'_show_special',true) ,هشدار  در دیتابیس ذخیره می کنه  ولی اگر تیک بردارید مقدار null ذخیره میشه .

می خوام اگر این باکس تیک خورد، یه متن (هشدار) داخل پست نمایش داده بشه و اگر تیک نخورد نمایش داده نشه اون عنوان.

اما با این کد هم همچنان تیک از بین نمی ره!

0

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


لینک به پست

پس همون کد قبلی باید بزارید. 

<?php
                global $post;
                if (get_post_meta($post->ID,'_show_special',true) == '1') {
                	echo 'نمایش پست';
                }	?>

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

1

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


لینک به پست

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

در 17 ساعت قبل، Mirrajabi گفته است :

پس همون کد قبلی باید بزارید. 


<?php
                global $post;
                if (get_post_meta($post->ID,'_show_special',true) == '1') {
                	echo 'نمایش پست';
                }	?>

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

در حال حاضر اگر تیک نخوره نمایش نمی ده عنوان مورد نظر رو، بعد از اینکه تیک خورد نمایش می ده اما دیگه نمی شه تیک رو ورداشت!

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

 

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

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


لینک به پست

  توtable postmeta

 metakey='

_show_special

'

سرچ کنید.

0

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


لینک به پست

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

در 2 ساعت قبل، Mirrajabi گفته است :

  توtable postmeta

 metakey='


_show_special

'

سرچ کنید.

ذخیره شده و "هشدار" رو به عنوان value ذخیره کرده!

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

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


لینک به پست

خب خوبه،  حالا تیک بردارید بروز رسانی کنید  ببینید چی ذخیره میکنه؟ 

0

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط milad021
      5
    • توسط jakob
      با عرض سلام
      دوستان من یه پست تایپ درست کردم واسه تیم ما
      بعد میخام متا باکس براش ایجاد کنم  که مثلا سمت شغلی رو بزنم و اینا
      چجوری باید ایجاد کنم ؟
    • توسط mohammadjavadkhalili
      با سلام خدمت دوستان
      من یه متا باکس طبق آموزش های سایت های مختلف ایجاد کردم اما چجوری باید در خود قالب نمایش بدم اطلاعات رو؟
       
    • توسط bhb
      سلام
      دوستان امیدوارم کسی بتونه منو راهنمایی کنه ..
      من متاباکس های دانلود دو سایت farsroid.com و download.ir رو دیدم و میخواستم بدونم کسی میتونه کمک کنه چطور میشه از متاباکس اینجوری استفاده کرد؟
      یعنی لینک های دانلود با عنوان های متفاوت .. و نه تنها یک لینک بلکه چندین لینک توی یک پست. اگه میشه کمک کنید
      نمونش این پست
      ممنون
    • توسط حسن موحد
      هر از چند گاهی دوستان شکایت دارند در مورد آموزش متاباکس ها در وردپرس و همیشه هم کمبود آموزشی در این زمینه را ابزار می کنند .
      به همین دلیل بود تا ما هم مقاله ای در این زمینه را ایجاد ودر اختیار شما دوستان قرار دهیم . امیدوارم که مورد پسند شما باشد و بعد از خواندن آن نظرات خود را در این بخش ارجاع دهید :
      این مقاله آموزشی است از سایت تاتپلاس که ترجمه و خدمت شما دوستان قرار گرفته است :
      طراحی وب سایت وردپرس با استفاده از متاباکس ها
      منتظر نظرات خوب شما دوستان عزیز هستم .