یک فیلد سفارشی در یک وب سایت وردپرسی، ابرداده یک پست را در انتهای پشتی ذخیره می کند. برای بازیابی و نمایش این داده ها روی قسمت جلویی را اضافه کنید get_post_meta تابع کد سایت شما

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

در این آموزش به توضیح وردپرس می پردازیم get_post_meta تابع و پارامترهای آن همچنین دو روش رایج برای افزودن آن به وب سایت خود را یاد خواهید گرفت – با استفاده از ویرایشگر تم وردپرس یا یک افزونه.

تابع get_post_meta وردپرس به شما امکان می دهد مقادیر را از فیلدهای متای پست بازیابی کنید و آنها را نمایش دهید روی قسمت جلویی، اطلاعات اضافی را نشان می دهد روی محتوای شما این تابع را به فایل پیکربندی قالب وردپرس خود اضافه کنید یا از افزونه ای مانند WPCode استفاده کنید.

پارامترهای تابع وردپرس get_post_meta

وردپرس get_post_meta سینتکس تابع دارای سه پارامتر است و به صورت زیر است:

get_post_meta( $post_id, $key, $single );

معنی هر پارامتر در اینجا آمده است:

  • $post_id – پستی که فراداده از آن به دست آمده است. برای بازیابی همه شناسه های پست، استفاده کنید get_the_id(). اگر از شناسه پست غیر موجود استفاده می کنید، تابع یک رشته خالی برمی گرداند.
  • کلید $ – کلید متا فیلد سفارشی برای بازیابی داده ها از. خالی گذاشتن آن، داده ها را از تمام فیلدهای متا پست در پست داده شده بازیابی می کند. اگر فیلد سفارشی وجود نداشته باشد یا فاقد یک مقدار متا باشد، یک آرایه خالی برمی گرداند.
  • مجرد دلار – پارامتری که تعیین می کند آیا تابع یک آرایه از مقادیر را برمی گرداند یا یک واحد. مقدار پیش فرض است درست است، واقعی، که یک آرایه واحد بدست می آورد. تنظیم آن به عنوان نادرست آرایه ای از چندین مقدار را از کلید متا مشخص شده بازیابی می کند.

مهم! اگر مجرد دلار پارامتر است درست است، واقعی و فیلد post meta حاوی مقادیر داده های متعدد است، تابع تنها مقدار اول را بازیابی می کند. در همین حال، استفاده از یک رشته خالی، تمام ابرداده‌ها را برای همان کلید در پست فعلی برمی‌گرداند.

همچنین می‌توانید از این تابع برای اهداف دیگری مانند بررسی اینکه آیا یک فیلد متا خاص در شناسه پست داده شده وجود دارد یا خیر استفاده کنید:

$custom_field = get_post_meta( get_the_id() );
if (!empty($custom_field)){
   echo "Meta field exists in this post"
} 
else
{
   echo "This post doesn’t contain a custom field"
}

روش استفاده از تابع get_post_meta برای نمایش فیلدهای سفارشی

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

چگونه تابع get_post_meta را به صورت دستی به قالب پست اضافه کنیم

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

پیشنهاد می‌کنیم بخوانید:  روش اجرای اسکریپت پایتون در لینوکس VPS

شما می توانید ویرایش کنید page فایل قالب از طریق داشبورد مدیریت یا هاستینگerمدیر فایل. در اینجا روش انجام این کار با استفاده از روش اول آورده شده است:

  1. وارد سیستم خود شوید داشبورد مدیریت وردپرس. از نوار کناری، به ظاهر ویرایشگر فایل تم.
  2. زیر فایل های تم منو را پیدا کنید single.php فایل.
  3. قطعه زیر را در انتهای فایل قبل از برچسب بسته شدن به یاد داشته باشید که مقادیر را بر اساس نیاز خود تغییر دهید:
echo get_post_meta(Post ID, 'key', true );
  1. پس از عملکرد، حلقه وردپرس را اضافه کنید تا به کد اجازه داده شود داده های بازیابی شده را بکشد و نمایش دهد. در اینجا یک مثال است که مقدار متا پست را در پایین پست شما نمایش می دهد:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php endwhile; else: ?>
<?php endif; ?>
  1. کلیک به روز رسانی فایل برای ذخیره تغییرات
ویرایشگر فایل تم در قسمت مدیریت وردپرس

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

foreach ($your_function_variable as $value){
   //command goes here
}

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

اگر ویرایشگر فایل تم منو از دست رفته است، به این معنی است که طرح زمینه شما به کاربران اجازه تغییر آن را نمی دهد page فایل قالب خوشبختانه، هاستینگer’s میزبانی وردپرس مدیریت شده کاربران می توانند از مدیر فایل hPanel برای پیدا کردن آن

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

این single.php فایل در پوشه تم فعال فعلی موجود است public_html/wp-content/تم ها. برای ویرایش فایل، کلیک راست کنید روی آن را انتخاب کنید ویرایش کنید.

بنر میزبانی وردپرسبنر میزبانی وردپرس
تابع get_post_meta وردپرس چیست و چگونه از آن برای نمایش فیلدهای سفارشی استفاده کنیم 12

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

روش اضافه کردن تابع get_post_meta با استفاده از یک پلاگین

اگر نمی توانید به single.php فایل، عملکرد را با استفاده از یک افزونه اضافه کنید. ما به شما نشان خواهیم داد که چگونه این کار را با استفاده از WPCode نسخه رایگان افزونه

پس از دانلود و نصب افزونه، مراحل زیر را دنبال کنید:

  1. از داشبورد مدیریت، به قطعه کد → افزودن قطعه.
  2. ماوس را روی کد سفارشی خود را اضافه کنید و کلیک کنید از Snippet استفاده کنید.
دکمه اضافه کردن یک قطعه سفارشی در افزونه WPcodeدکمه اضافه کردن یک قطعه سفارشی در افزونه WPcode
  1. از نوع کد منوی کشویی، انتخاب کنید قطعه PHP.
  2. کد خود را وارد کنید پیش نمایش کد رشته. باید شامل تابع و حلقه باشد.
  3. به پایین اسکرول کنید درج بخش و تنظیمات را بر اساس تغییر دهید روی نیازهای شما. به عنوان مثال، ما انتخاب خواهیم کرد درج خودکار و درج پس از محتوا به عنوان مکان
تنظیمات درج قطعه کد در افزونه WPCodeتنظیمات درج قطعه کد در افزونه WPCode
  1. کلیک ذخیره قطعه در گوشه سمت راست بالا
  2. را فشار دهید ضامن فعال سازی برای اعمال کد
کلید فعال سازی و ذخیره قطعه در WPCodeکلید فعال سازی و ذخیره قطعه در WPCode

نمونه های تابع get_post_meta وردپرس

در این بخش چندین توضیح داده خواهد شد get_post_meta از نمونه هایی برای الهام گرفتن خود استفاده کنید.

دسترسی به اشیاء پست منتشر شده و کلیدهای متا

$published_posts = get_posts(array('post_status' =&gt; 'publish'));
foreach ($published_posts as $post) {
    $post_id = $post->ID;
    $meta_keys = get_post_meta($post_id);}

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

واکشی عنصر img HTML که یک پیوست تصویر را نشان می دهد

$attachment_id = get_post_meta($post_id,'_thumbnail_id', true);
if ($attachment_id) {
   $image_html = wp_get_attachment_image($attachment_id, 'large');
   echo $image_html;
}
else { echo 'No images!'; }

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

پیشنهاد می‌کنیم بخوانید:  روش بازیابی وردپرس از پشتیبان: 4 روش موثر + بهترین روش

همچنین می‌توانید از کد برای بازیابی یک پست کوچک با تغییر آن استفاده کنید wp_get_attachment_image کارکرد اندازه دلار پارامتر.

به داده های پویا مربوط به یک پست متا فیلد دسترسی پیدا کنید

$dynamic_suffix = 'example';
$custom_field_name="custom_field_" . $dynamic_suffix;
$dynamic_data = get_post_meta(get_the_id(), $custom_field_name, true);
if ($dynamic_data) {
    echo 'Dynamic Data: ' . esc_html($dynamic_data);
} else {
    echo 'No dynamic data found.';
}

می توانید فیلدهای تولید شده به صورت پویا را با استفاده از پسوند پویا معرفی کنید. مثلاً ایجاد می کنیم custom_field_example با استفاده از مثال پسوند در کد

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

بر اساس وضعیت پست واکشی می کند روی فراداده

$post_status = get_post_meta(post_ID, 'custom_field_post_status', true);
if ($post_status) {
    echo 'Custom Status: ' . esc_html($post_status);
} else {
    echo 'Custom status not found or unavailable.';
}

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

نتیجه

وردپرس get_post_meta تابع به شما امکان می دهد ابرداده پست را از یک فیلد سفارشی بازیابی کرده و به بازدیدکنندگان وب سایت نمایش دهید. این دارای سه پارامتر است – شناسه پست، کلید متا فیلد، و تعیین کننده ای که تعیین می کند یک مقدار یا چند مقدار بدست آید.

برای استفاده از این تابع، کد را به تم خود اضافه کنید single.php یا functions.php فایل. می توانید این کار را با استفاده از مدیریت فایل کنترل پنل هاست خود یا از طریق داشبورد مدیریت وردپرس انجام دهید ویرایشگر فایل تم زیر ظاهر منو.

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

اگر سوال دیگری دارید، در صورت تمایل به بررسی آموزش وردپرس ما بپردازید.

سوالات متداول get_post_meta وردپرس

در این بخش به سوالات رایج در مورد وردپرس پاسخ خواهیم داد get_post_meta تابع.

چگونه از تابع get_post_meta استفاده کنم؟

تابع را در تم خود اضافه کنید single.php فایل یا functions.php اگر یک نوع پست سفارشی دارید. در کد، شناسه پست، فیلد متا که می‌خواهید داده‌ها را از آن بازیابی کنید، و اینکه آیا فقط یک مقدار یا آرایه‌ای از آنها بازیابی شود را مشخص کنید. اگر چندین فیلد و آرایه سفارشی دارید، مقادیر را حلقه حلقه کنید تا آنها را نمایش دهید.

چگونه عملکرد get_post_meta وردپرس با فیلدهای سفارشی کار می کند؟

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

آیا می توانم از تابع get_post_meta برای نمایش تمام فیلدهای سفارشی استفاده کنم؟

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

چگونه شناسه پست را برای تابع get_post_meta پیدا کنم؟

روش های مختلفی برای بازیابی شناسه پست وردپرس وجود دارد. ساده ترین راه استفاده از افزونه ای مانند Reveal IDs است که یک ستون ID جدید در همه پست ها و تمام صفحات منوها متناوبا، استفاده کنید echo get_post_id عملکرد چاپ شناسه در پست شما.