کاربران وردپرس – بخش دوم: متادیتا کاربر

همانند پست های وردپرس که دارای جدول و توابع خاصی برای کار با متادیتاهای مربوط به پست هستند، برای کاربران نیز چنین جدول و توابعی در وردپرس تعریف شده است. تمامی اطلاعات اضافه و متادیتاهای مرتبط با کاربران در جدول usermeta ذخیره می گردد. مشابه جدول postmeta، در این جدول نیز داده های کاربران براساس آیدی آنان و تعریف یک کلیدمتا و مقدار متناظر با آن در جدول usermeta نگهداری می گردد.

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

برای افزودن یک متادیتا جدید از تابع add_user_meta استفاده می گردد. این تابع چهار پارامتر ورودی می پذیرد: پارامتر اول آیدی کاربر، پارامتر دوم کلیدمتا، پارامتر سوم مقدار متناظر با کلید و پارامتر چهارم که اختیاری است تعیین کننده یکتا بودن مقدار کلید در ازای کاربر می باشد. این تابع در صورت افزودن موفق داده ها مقدار آیدی متا و در غیر این صورت مقدار false را برمی گرداند.

< ?php
             
add_user_meta( 100, 'favorite_books', 'WordPress Dev Champ', false );
add_user_meta( 100, 'favorite_books', 'WordPress Lazy Coder', false );
add_user_meta( 100, 'favorite_books', 'WordPress The Hard Way', false );
             
? >

در مثال فوق کتابهای مورد علاقه کاربر 100 در سطرهای جداگانه و با کلید یکسان favorite_books به جدول usermeta اضافه می گردد. مقداردهی پارامتر چهارم تابع با مقدار false امکان درج سطرهای مختلف با کلید یکسان را فراهم می آورد. در صورت یکتا بودن مقدار متادیتا در ازای کلیدمتا، پارامتر چهارم باید به صورت true مقداردهی می شد.

دریافت اطلاعات متادیتا

تابع get_user_meta مقدار متادیتا ذخیره شده برای کاربر در جدول usermeta را با توجه به کلیدمتا و آیدی کاربر برمی گرداند. این تابع سه پارامتر ورودی می پذیرد: پارامتر اول آیدی کاربر، پارامتر دوم کلیدمتا و پارامتر سوم که اختیاری است تعیین کننده نوع مقدار برگشتی تابع به صورت آرایه یا رشته است که مقدار true بیانگر خروجی به صورت رشته و مقدار false بیانگر خروجی به صورت آرایه است.

< ?php
             
/* Get the user’s favorite books. */
$favorite_books = get_user_meta( 100, 'favorite_books', false );
             
/* Check if there are any favorite books. */
if ( !empty( $favorite_books ) ) {
             
    /* Open an unordered list. */
    echo ' < ul class=”favorite-books" > ';
             
    /* Loop through each of the books. */
    foreach ( $favorite_books as $book ) {
             
        /* Display the book name. */
        echo ' < li > ' . $book . ' < /li > ';
    }
}
             
? >   

در مثال فوق لیست کتابهای مورد علاقه کاربر 100 از دیتابیس دریافت و به نمایش در می آید. چون متادیتا کلید favorite_books دارای چندین مقدار بود، پارامتر سوم با false مقداردهی شد تا خروجی به صورت آرایه برگردانده شود.

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

تابع update_user_meta برای بروزرسانی و ایجاد یک میتادیتا کاربر می تواند استفاده شود. این تابع ابتدا وجود یک متادیتا در جدول usermeta را بررسی می کند و در صورت وجود آن متادیتا، مقدار مورد نظر را بروزرسانی و در صورت عدم وجود مقدار جدید را به جدول اضافه می کند. این تابع چهار پارامتر ورودی می پذیرد که تنها پارامتر آخر آن اختیاری است: پارامتر اول آیدی کاربر، پارامتر دوم کلیدمتا، پارامتر سوم مقدار متادیتا و پارامتر چهارم مقدار قبلی متادیتا که برای بروزرسانی متادیتاهای چند مقداری می تواند مفید باشد. این تابع در صورت ایجاد متادیتا جدید آیدی متادیتا، در صورت بروزرسانی موفق مقدار true و در صورت وقوع خطا مقدار false را برمی گرداند.

< ?php
             
update_user_meta(
    100,
    'favorite_books',
    'WordPress Design Champ',
    'WordPress Dev Champ'
);
             
? >   

در مثال فوق، تنها سطری که مقدار متادیتای قبلی آن برابر WordPress Dev Champ بوده بروزرسانی می شود و مقادیر سطرهای دیگری که کلیدمتا favorite_books دارند بدون تغییر باقی می ماند.

حذف متادیتای کاربر

تابع delete_user_meta عملیات حذف متادیتا از جدول usermeta را انجام می دهد. این تابع چهار پارامتر ورودی می پذیرد: پارامتر اول آیدی کاربر، پارامتر دوم کلید متا و پارامتر سوم که اختیاری است مقدار متادیتای مورد نظر برای حذف است. در صورت عدم تعیین پارامتر سوم برای این تابع تمامی متادیتاهای متناظر با کلیدمتا حذف می گردد. در صورت حذف موفق متادیتا مقدار true و در غیر این صورت مقدار false برگردانده می شود.

< ?php
             
delete_user_meta( 100, 'favorite_books', 'WordPress Lazy Coder' );
             
? >

پست های مرتبط

Leave a Comment