ایجاد و مدیریت فراداده نوشته

///ایجاد و مدیریت فراداده نوشته

ایجاد و مدیریت فراداده نوشته

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

اضافه کردن متاداده (Add Meta Data)

اضافه کردن فراداده (meta data) به سادگی با تابع add_post_meta()  امکانپذیر است .

این تابع ۴ پارامتر زیر را قبول می کند :

$post_id : الزامی – آی دی یا شناسه نوشته ای که می خواهید فراداده به آن اضافه شود .

$meta_key : الزامی – کلید فراداده

$meta_value : الزامی – مقدار فراداده

$unique : اختیاری – تعیین  اینکه کلید فراداده ، یکتا باشد یا خیر . اگر این گزینه true باشد ، فقط در صورتی این فراداده ذخیره می شود که ، فراداده ای با کلید مشابه وجود نداشته باشد .

مقدار برگشتی این تابع ، شناسه (id) رکورد ذخیره شده فراداده می باشد ، که به عنوان true ارزیابی می شود .

اگر پارامتر $unique  با مقدار true تنظیم شود و فراداده ای با کلید مشابه قبلاً وجود داشته باشد ، false برگردانده می شود .

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

اسمی مانند mycrazymetakeyname برای یک فراداده خوب است ، اما بهتر است فراداده های خود را با قرار دادن یک پیشوند در ابتدای آنها و جداسازی کلمات با زیرخط (_) خواناترکنید . به عنوان مثال فراداده ای برای نگهداری یک لینک می تواند به صورت enter64_my_link_holder باشد . که در اینجا enter64_ پیشوند و مابقی اسم توصیف عملکرد فراداده می باشد .

نکته : یک کلید فراداده (meta_key) می تواند چندین بار ، برای ذخیره تغییرات مورد استفاده قرار گیرد .

پارامتر مقدار فراداده (meta_value) می تواند یک رشته ، یک عدد صحیح و یا یک آرایه باشد .

نکته : اگر مقدار فراداده ، آرایه باشد ، قبل از ذخیره شدن در بانک اطلاعاتی ، به صورت سریالی در خواهد آمد .

 

اگر مقدار پارامتر meta_key یکتا نباشد ، می توانید برای یک نوشته چندین فراداده داشته باشد . مثلاً می توانید چندین “قیمت” برای نوشته سفارشی “محصولات” را ذخیره کنید .

بر خلاف حالت بالا اگر می خواهید برای هر نوشته تنها یک فراداده “قیمت” داشته باشید ، باید پارامتر unique را روی  true قرار دهید .

 

بروزرسانی فراداده (Updating meta Data)

اگر یک کلید فراداده موجود باشد ، می توانید توسط تابع update_post_meta()  آن را بروزرسانی کنید .

اگر یک فراداده وجود نداشته باشد و شما از تابع update_post_meta()   استفاده کنید ، آن فراداده با پارامتر غیریکتا (یعنی پارامتر unique آن برابر false باشد) ایجاد می شود .

۳ پارامتر اول این تابع مانند تابع add_post_meta()   می باشد و پارامتر چهارم آن $prev_value    می باشد .

 

توضیح پارامتر $prev_value   : این پارامتر اختیاری می باشد . چنانچه تنظیم نشود ، تمام فراداده های با کلید یکسان بروز می شوند و چنانچه تنظیم شود ، تنها فراداده ای بروزرسانی می شود که مقدار فعلی آن برابر با این پارامتر باشد .

 

حذف فراداده (Deleting Meta Data)

با استفاده از تابع delete_post_meta()   می توانید تمام فراداده هایی با کلید خاصی ، یا با کلید و مقدار خاص را ، حذف کنید .

تابع delete_post_meta()   سه پارامتر زیر را قبول می کند :

$post_id   : شناسه نوشته ای که می خواهید فراداده مرتبط با آن را حذف کنید .

$meta_key   : کلید فراداده مورد نظر

$meta_value   : مقدار فراداده مورد نظر

 

فرار کاراکترها (Character Escaping)

به خاطر اینکه مقادیر فراداده ها در هنگام ذخیره شدن توسط تابع stripslashes()   ارسال می شوند ، شما باید هنگام ارسال مقادیری که دارای کاراکتر \ هستند ، دقت کنید .

نکته : مقادیر فرار (escaped values) را ذخیره نکنید .

 

مقدار JSON زیر را در نظر بگیرید :

{“key”:”value with \”escaped quotes\””}:

<?php
$escaped_json = '{"key":"value with \\"escaped quotes\\""}';
update_post_meta( $id, 'escaped_json', $escaped_json );
$broken = get_post_meta( $id, 'escaped_json', true );
/*
$broken, after passing through stripslashes() ends up unparsable:
{"key":"value with "escaped quotes""}
*/
?>

راه حل

بوسیله اضافه کردن یک کاراکتر فرار \ توسط تابع wp_slash()   که از نسخه ۳.۶ به وردپرس اضافه شده است ، می توانید مشکل فوق را برطرف کنید .

 

فیلدهای سفارشی مخفی

اگر شما یک توسعه دهنده افزونه یا پوسته هستید و می خواهید از فیلدهای سفارشی برای پارامترهای مرتبط با افزونه یا پوسته خود استفاده کنید ، جالب است بدانید که ، وردپرس فیلدهای سفارشی که کلید آنها با خط زیر (_) شروع می شود را ، در صفحه ویرایش نوشته ، یا هنگام استفاده از تابع the_meta()   ، نمایش نمی دهد .

 

به عنوان مثال کد زیر را در نظر بگیرید :

<?php
    add_post_meta( 68, '_color', 'red', true );
?>

این کد یک فیلد سفارشی با کلید _color    و مقدار red  را به صفحه ویرایش نوشته اضافه می کند ، اما این فیلد سفارشی به صورت مخفی است و نمایش داده نمی شود .

 

آرایه های پنهان

شما می توانید یک آرایه مخفی را نیز به صورت فیلد مخفی در قسمت ویرایش نوشته ، داشته باشید .

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

۱۳۹۴/۷/۱۱ ۹:۰۵:۲۴

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

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

نظر شما چیست