زمینه دلخواه و نحوه کار با آن

وردپرس این امکان رو به شما میده که علاوه بر اطلاعات مشخصی که در هر نوشته درج می کنید مثل عنوان، برچسب ها، متن نوشته و … اطلاعات اضافی رو هم همراه اون ذخیره کنید و در مواقع نیاز از اون ها استفاده کنید. به این قابلیت وردپرس زمینه های دلخواه گفته میشه.
کاربرد این ابزار نامحدوده اما از نمونه کاربرد های اون میشه به قرار دادن باکس دانلود فایل در انتهای هر مطلب (برای وب سایت های دانلودی) یا مثلا نوشتن اطلاعات اضافی همچون نویسنده کتاب ، انتشارات و … (برای یک وب سایت کتاب) در قالبی جدا از مطلب اشاره کرد.
اما نحوه استفاده از این زمینه های دلخواه چگونه هست؟
برای ثبت زمینه های دلخواه همراه هر پست ابتدا باید بخش مربوط به اون رو فعال کنید. برای فعال کردن این بخش به بخش افزودن نوشته برید. حالا از گزینه تنظیمات صفحه (واقع در بالا سمت چپ) تیک گزینه زمینه های دلخواه رو فعال کنید. به همین سادگی!
حالا جعبه ای با نام زمینه های دلخواه در پایین بخشی که متن مطلبتون رو وارد می کنید ایجاد میشه. شما می تونید از طریق این بخش زمینه های دلخواهتون رو به نوشتتون اضافه کنید.
اما حالا شاید بپرسید چطور میشه از این زمینه دلخواهدر قالبمون استفاده کنیم؟
تابعی که میشه با اون زمینه های دلخواه رو فراخونی کرد تابع زیر هستش:

<?php get_post_meta ($post->ID, 'custom_field',ture); ?>

عنوان زمینه دلخواه ما باید جای custom_field قرار بگیره. مثلا اگر ما زمینه دلخواهی با نام wp-themedesigner معرفی کردیم برای نمایش مقدار اون در قالب سایت باید از دستور زیر استفاده کنیم:

<?php echo get_post_meta ($post->ID, 'wp-themedesigner',ture); ?>

این تابع مقدار زمینه دلخواه wp-themedesigner رو به کاربر نمایش میده.
کاربران و طراحان قالب حرفه ای اغلب مقدار زمینه دلخواه رو به صورت یک متغییر میگیرند که بعدا بتونند اون رو در برنامه نویسی ها هم استفاده کنند. برای نگه داری مقدار یک زمینه دلخواه به صورت یک متغییر می بایست دستور زیر رو پس از چرخه مطلبتون قرار بدید.

<?php $custom_field = get_post_meta($post->ID, 'custom_field', true); ?>

فراموش نکنید که عنوان زمینه دلخواه خودتون رو به جای custom_field در تابع بالا قرار بدید.

ایجاد شرط if در زمینه دلخواه :
شروع شرط

<?php $mid_var = get_post_meta($post->ID, 'wp-themedesigner',true);
if(isset($mid_var) && !empty($mid_var)) : ?>

پایان شرط

<?php endif; ?>

شما می توانید با این دستورات برای زمینه دلخواه خود شرط قرار دهید.(مثلا اگر زمینه دلخواه “wp-themedesigner” فعال بود این کد های را اجرا کن.)

حالا می خواهیم با یک مثال عملی از زمینه های دلخواه استفاده کنیم.
می خواهیم با استفاده از زمینه های دلخواه یک بخش دانلود فایل همانند آنچه که در سایت های دانلود می بینید یا در صفحات معرفی افزونه در تم دیزاینر به پایین مطلبمون اضافه کنیم.
در ابتدا کد های css زیر رو به قالب خودتون اضافه کنید(این کار رو می تونید از طریق منوی نمایش < ویرایشگر انجام بدید. دستورات زیر رو به انتهای فایل style.css قالب خودتون اضافه کنید و فایل رو ذخیره کنید.

#download-links, .mobile-download-links { width: 500px; background: #E6FFB2; padding: 10px 15px; border-bottom: 2px solid #B8EB59; position: relative; color: #5CA000; }
#download-links a, .download-links a:link { color: #09700B; padding: 3px 4px 4px; }
#download-links a:hover { color: #09700B; text-shadow: 0 1px 1px #fff; padding: 3px 4px 4px; background-color: #F9FFEB; -moz-border-radius: 3px 3px 3px 3px; /* FF1+ */ -webkit-border-radius: 3px 3px 3px 3px; /* Saf3-4, iOS 1+, Android 1.5+ */ border-radius: 3px 3px 3px 3px; /* Opera 10.5, IE9, Saf5, Chrome, FF4 */ }
#download-links h3 { color: #8CCD18; }
#download-links-style { white-space: nowrap; overflow: auto; width: 540px; font-size: 0.95em; }

حالا پرونده single.php رو از نوار سمت چپ انتخاب کنید تاوارد محیط ویرایش اون بشید. سپس دستورات زیر رو در جایی مناسب قرار بدید.

<div id="download-links">
<h3>قسمت دانلود</h3>
<ul>

<?php $mid_var = get_post_meta($post->ID, 'download',true);
if(isset($mid_var) && !empty($mid_var)) : ?>
<li><a href="<?php echo get_post_meta($post->ID, 'download',true); ?>">دانلود با لینک مستقیم</a></li> <?php endif; ?>

<?php $mid_var = get_post_meta($post->ID, 'download2',true);
if(isset($mid_var) && !empty($mid_var)) : ?>
<li><a href="<?php echo get_post_meta($post->ID, 'download2',true); ?>">دانلود - لینک کمکی</a></li> <?php endif; ?>

<?php $mid_var = get_post_meta($post->ID, 'password',true);
if(isset($mid_var) && !empty($mid_var)) : ?>
<li>رمز فایل : <?php echo get_post_meta($post->ID, 'password',true); ?></li> <?php endif; ?>

</ul>
</div>

ترجیحا این کد رو بعد از دستور

<?php the_content(); ?>

قرار بدید.
حالا شما می تونید من بعد به جای نوشتن دانلود فایل در انتهای هر مطلبتون و قرار دادن لینک دانلود از زمینه های دلخواه زیر استفاده کنید:
نام “download” : مقدار “لینک دانلود مستقیم”
نام “download2” : مقدار “لینک دانلود غیر مستقیم”
نام “password” : مقدار “پسورد”

نتیجه کدهای بالا :

پیروز باشید!!


نظرات و دیگر موارد
اگر این قالب را دوست دارید امتیاز دهید :
۲۵ دیدگاه نوشته شده است! می توانید دیدگاه خود را بنویسید

  1. اگر بخوایم زمینه های دلخواه ثابت بمونن چکار باید بکنیم منظورم این هست که هر بار انتخاب نکنیم به صورت خودکار باشن و فقط ما بهش مقدار بدیم

  2. عالی بود استفاده کردم.

  3. سلام خسته نباشید من یه مشکل اساسی دارم!
    توضیحتون کامل بود ولی در نسخه آخر وردپرس انتخاب نام زمینه دلخواه هست یعنی نمیشه خودمون اسم زمینه دلخواه رو بنویسیم! من چیکار کنم؟ممنون میشم راهنماییم کنین:(

  4. با سلام وتشکر بابت این آموزش
    اما سوالی دارم ، چون قالب سایت ، شاید تغییر داشته باشد ، اینکه افزونه ای برای اینکار هست ؟

    مثلا ما متنی داریم ، که قرار است در پایان هر پست نمایش داده شود – اما در پست اخبار سایت یا … نباید نمایش داده شود – دنبال افزونه ای هستیم که این را بتوانیم برای بعضی پست ها فعال و بعضی غیر فعال کنیم
    آیا می شود راهنمایی کنید ؟

  5. من یک قالب اختصاصی برای دسته ام ساختم که شبیه فروشگاه فروش فایل است و یک سینگل اختصاصی برای ان دسته هم طراحی کردم.
    کد ID, ‘fee’, true); ?>
    در بالای سینگل و دسته ساخته شده گذاشتم و کد را برای نمایش قیمت در دایو هایی در سینگل و در قالب اختصاصی آن دسته ساخته شده.

    بعد از وارد کردن زمینه دلخواه مورد نظر در سینگل، قیمت ها را درست نشون میده ، اما در صفحه اصلی قالب دسته خاصم آخرین قیمت محصولی که زمینه دلخواهش را دادم در نشون میده.
    یعنی تو سینگل قیمت ها درسته اما تو صفحه ای که برای اون دسته طراحی کردم و ۳ محصول نشون میده همه قیمت ها را ۱۰۰۰ تومان میزنه که قیمت آخرین زمینه دلخواهمه و قیمت های همه محصولات را به اشتباه با آخرین قیمت یکی نشون میده.

    چه کدی برای فراخوانی زمینه دلخواه هر محصولم بزارم که قیمت خودش را نشون بده؟
    این کد هم قرار دادم جواب نداد
    ID, ‘fee’,true); ?>

  6. سلام واقعا اموزش خیلی خوبی بود
    فقط یه جا مشکل دارم اگه میشه کمک کنید
    کد if رو باید دقیقا کدوم قسمت قالب گذاشت؟
    (functions.php) اینجا؟

  7. علی در می 15, 2015 ساعت 10:45 ب.ظ  گفته :

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

  8. محمد در آوریل 10, 2015 ساعت 12:16 ب.ظ  گفته :

    سلام
    ممنون به خاطر مطلب خوبتون
    اگه بخوایم یکی از فیلدها همیشه ثابت باشه
    مثلا رمز همیشه یکی هست چه طور انجام بدیم ؟
    ممنون

  9. سلام ممنون
    توضیح کاملی بود
    یه سوال : اگر توی فیلدهای اضافه مثلا توی همین فیلد download مقدار را دو گزینه b1 یا b2 قرار بدیم و بعد بخواییم از همین دستور برای اینکار استفاده کنیم که مثلا :
    اگر b1 انتخاب شد یه عکس خاص نمایش داده بشه و اگر b2 انتخاب بشه یه عکس دیگه ، کدش به چه شکل میشه؟

  10. دروود بر شما
    ممنون از مطلب خوبتون
    فقط یک مسئله برای پست های قبلی که از این زمینه پیروی نکردند هم میشه کاری کرد که از متن خونده بشه اون زمینه ؟ ؟ ؟

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

  12. ایمان در سپتامبر 14, 2014 ساعت 5:40 ب.ظ  گفته :

    با سلام

    ممنون از آموزش خوبتون..
    یه سوال: این کدی که بالا قرار دادید و توضیح دادید رو وقتی توی قالب پیاده سازی میکنم برای همه ی مطالب حتی اونایی که براشون این لینک و … رو قرار ندادم هم این باکس زیر مطلب نشون داده میشه. حالا میخواستم بدونم چجوری میتونم یه شرط برای این کد قرار بدم که وقتی به زمینه ی دلخواه لینک و مقدار دادیم نشون بده و برای اون مطالبی که مقدار ندادیم دیگه نشون نده….

    ممنون میشم تو این زمینه راهنمایی کنید

    با تشکر

  13. سلام خسته نباشید من یه سایت زدم ورد پرس هست یسری مشگلات دارم زیاد وارد نیستم اگه میشه تو زمینه راه اندازیش کمکم کنید

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

    <a href="”>

    نام نویسنده یادداشت

    اگر با این اوصاف بخوام برای “نام نویسنده یادداشت” در قسمت ویرایشگر متن زمینه دلخواهی با اسم author ایجاد کنم و بعد مقدارش رو مثلا بزارم “محمود داداشی نیاکی” باید چه کارهایی انجام بدم؟ توضیح اینکه نیازی به نوشته “نویسنده:” ندارم.

    اگر راهنماییم بکنید سپاسگزار خواهم شد.

  15. Webdeveloper در آگوست 3, 2014 ساعت 6:38 ق.ظ  گفته :

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

  16. فقط یه سوال:
    اگه بخوام یه عکس به این باکس اضافه کنم چجوری میشه؟؟

    نمونه:http://pars-disa.ir/picture-upload/images/fldca8n3f6mmnlg1uguu.jpg

  17. آقا دست گلت درد نکنه. من کلی سایت گشتم ولی یکی نبود درست حسابی توضیح داده باشه.
    مرسییییی

    پاسخ شما :
    خواهش دوست من.

  18. با سلام
    بسیار آموزش مفیدی بود.
    منتظر آموزش های بیشتر هستیم

    پاسخ شما:
    نظر لطف شماست.