سلام به همگی، مدتی پیش برای شمارش تعداد رکوردهای یک کلید، با شرط وجود مقداری مشخص در پست متا (مربوط به مبحث زمینه های دلخواه وردپرس)، قطعه کدی رو استفاده کردم که در پست امروز، این کد رو جهت استفاده ی دوستان قرار میدم. و اما توضیحات:
بخش اول: برای بدست آوردن مقدار یک زمینه ی دلخواه، از تابع get_post_meta استفاده می کنیم. این تابع 3 تنظیم اصلی داره که به ترتیب، ورودی های ID، نام کلید و نوع مقدار بازگشتی (true = رشته و false = آرایه) رو از یک پست، دریافت میکنه. (بنابراین توجه داشته باشید که این تایع رو در فایلهایی مثل single و page فراخوانی کنید.)
در سطر اول قطعه کد زیرین، برای بدست آوردن ID نوشته، از تابع get_the_ID استفاده کردیم و نام کلید رو به صورت فرضی “test-meta” گذاشتیم. حالا نتیجه ی فراخوانی این تابع، مقداری خواهد بود که در متغیر getMetaData ذخیره میشه.
بخش دوم: در این بخش، با مقدار به دست اومده از مرحله ی قبل + یک رشته دستور ساده ی sql، تعداد رکوردهای حاوی کلید “test-meta” رو در متغیر countMeta ذخیره میکنیم. تنها نکته ای که باید توجه داشته باشید، اینه که برای اتصال به پایگاه داده ی وردپرس، از کلاس wpdb استفاده میشه و به همین جهت، حتما باید متغییر سراسری global $wpdb;
رو پیش از تعریف سایر متغیرها، فراخوانی کنید.
PHP
$getMetaData = get_post_meta(get_the_ID(), 'test-meta', true); $countMeta = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->postmeta WHERE meta_key LIKE 'test-meta' AND meta_value LIKE '$getMetaData'" );
حالا میتونید با چاپ متغیر countMeta، تعداد رکوردهای یک کلید رو با شرط وجود مقداری مشخص در پست متا، نمایش بدید.
بازهم تأکید میکنم که کلید test-meta، یک نام فرضیه و شما باید اون رو در هر دو خط، به نام کلید نوشته ی خودتون تغییر بدید.
- مشکلی دارید؟ جواب خود را در پست فروم بگیرید
- منبع : بیست اسکریپت لطفا رعایت کنید