کار با متادیتا (Metadata) کاربران در وردپرس

///کار با متادیتا (Metadata) کاربران در وردپرس

کار با متادیتا (Metadata) کاربران در وردپرس

سایر بخش های سری آموزشی " ایجاد افزونه وردپرس "

جدول users در وردپرس شامل اطلاعات بسیار اندکی می شود و نمی توان چیزهای بیشتری را در آن نگه داری کرد. به همین دلیل از جدول usermeta استفاده می شود. در این جدول اطلاعاتی مانند نام و نام خانوادگی و موارد مشابه با توجه user_id ذخیره می شود.

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

 

افزودن متای کاربر با استفاده از فرم

ایجاد فرم

برای اینکه یک فیلد برای ویرایش اطلاعات کاربران به صفحه شناسنامه آنها اضافه کنید، می توانید از کدی مانند زیر استفاده کنید:

add_action( 'show_user_profile', 'my_show_extra_profile_fields' );
add_action( 'edit_user_profile', 'my_show_extra_profile_fields' );
 
function my_show_extra_profile_fields( $user ) { ?>
 
    <h3>Extra profile information</h3>
 
    <table class="form-table">
 
        <tr>
            <th><label for="twitter">Twitter</label></th>
 
            <td>
                <input type="text" name="twitter" id="twitter" value="<?php echo esc_attr( get_the_author_meta( 'twitter', $user->ID ) ); ?>" class="regular-text" /><br />
                <span class="description">Please enter your Twitter username.</span>
            </td>
        </tr>
 
    </table>
<?php }

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

 

ذخیره کردن دیتا

در مرحله قبلی فرم مربوط به دریافت اطلاعات را آماده کردیم. حال باید این اطلاعات دریافتی را در پایگاه داده وردپرس به ثبت برسانیم. به همین دلیل لازم است که از کدهای زیر نیز استفاده شود:

add_action( 'personal_options_update', 'my_save_extra_profile_fields' );
add_action( 'edit_user_profile_update', 'my_save_extra_profile_fields' );
 
function my_save_extra_profile_fields( $user_id ) {
 
    if ( !current_user_can( 'edit_user', $user_id ) )
        return false;
 
    /* Copy and paste this line for additional fields. Make sure to change 'twitter' to the field ID. */
    update_usermeta( absint( $user_id ), 'twitter', wp_kses_post( $_POST
['twitter'] ) ); }

توجه داشته باشید که تابع update_usermeta حتی زمانی که مقداری از پیش وجود نداشته باشد نیز می تواند مورد استفاده قرار گیرد. به عبارتی اگر آن مقدار وجود نداشت، خودش آن را ایجاد خواهد کرد.

 

افزودن متای کاربر با استفاده از برنامه نویسی

برای اینکه متای کاربر را با استفاده از برنامه نویسی وارد کنید، دو روش وجود دارد:

  1. add_user_meta()
  2. update_user_meta()

add_user_meta

<?php
add_user_meta( $user_id, $meta_key, $meta_value, $unique );
?>

دریافت و ارائه متادیتا کاربران

با استفاده از آرایه می توان تمام یا تنها یکی از اطلاعات مربوط به کاربر را در یک زمان دریافت کرد. تابعی که بدین منظور استفاده می شود:

<?php
get_user_meta($user_id, $key, $single);
?>

برای مثال اگر user_id و key را مقدار دهی کنید، در آن صورت تنها اطلاعات مربوط به key وارد شده را دریافت خواهید کرد.

نویسنده: |۱۳۹۶/۸/۵ ۲۱:۳۷:۳۵۱۰ مرداد ۱۳۹۵|ساخت افزونه وردپرس, سری آموزشی|فاقد دیدگاه

به اشتراک بگذارید

درباره نویسنده:

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

نظر شما چیست