شمارش تعداد رکوردهای یک کلید در پست متا

دسته‌ها : هک ها و کدها, وردپرس, وردپرس علی میرزائی 11 دیدگاه‌ها

شمارش تعداد رکوردهای یک کلید در پست متا

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

بخش اول: برای بدست آوردن مقدار یک زمینه ی دلخواه، از تابع get_post_meta استفاده می کنیم. این تابع ۳ تنظیم اصلی داره که به ترتیب، ورودی های 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، یک نام فرضیه و شما باید اون رو در هر دو خط، به نام کلید نوشته ی خودتون تغییر بدید.

دیدگاه کاربران در مورد این نوشته

  1. بسیار عالی

    توسط mohsen پاسخ

  2. مطالب خوب و مفیدی بود.
    با تشکر.
    امید است که با یاری همدیگر سایتهای پر محتوا و مفید با رشد روزافزون ادامه مسیر دهند.

    توسط انجام پایان نامه مهندسی عمران پاسخ

  3. مث همیشه عالی .مرسی علی آقا

    توسط سعید جوشنی پاسخ

    1. فدای تو آقا سعید گل :)

      توسط علی میرزائی پاسخ

  4. سلام
    جوابی ندادین ؟

    توسط محمد حسین پاسخ

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

    توسط میلاد پاسخ

    1. سلام آقا میلاد، پاسخ رو طریق ایمیل براتون فرستادم.

      توسط علی میرزائی پاسخ

  6. سلام داداش علی
    شرمنده که فقط مشکلام رو واسه شما میارم
    یه سوال : بازدید پست هام وقتی که از هزار بالا میره داخل سایت اینجوی نمایش میده ؟
    تعداد بازدید : 1�167
    چجوری می تونم درستش کنم هرجا گشتم نبود.
    و چند روز قبل هم خواسته بودم یه نوار ابزار چسبنده برام درست کنید سوال کرده بودید که کدوم قرار بگیره ؟
    سمت چپ میخواهم 10 آهنگ برتر هفته باشه و سمت راست تبلیغات بنری

    توسط محمد حسین پاسخ

    1. سلام آقا محمد حسین،
      اختیار دارید، “دنیای وردپرس و برنامه نویسی” برای کمک به دوستانی مثل شما راه اندازی شده.
      این مشکل معمولا به خاطر عدم شناسایی کاراکتر utf-8 اتفاق میفته. یه راه حل اینه که فرمت قالب صفحتون رو به utf-8 تبدیل کنید. (به عنوان مثال: فایل single.php قالبتون رو در نرم افزار notepad++ باز کنید و سپس در منو encoding، گزینه convert to utf-8 رو انتخاب کنید.)
      اگه حل نشد، کد زیر رو در فایل header.php قالب، کپی کنید:

      <meta charset="<?php bloginfo( 'charset' ); ?>">

      توسط علی میرزائی پاسخ

      1. سلام

        علی جان من هردو کار رو انجام دادم ولی بازم درست نشد ، راستی یادم رفت بگم داخل پیشخوان خود وردپرس هم وقتی پست ها از هزار بالا میره انجوری نشون میده ویرایش وردپرسم هم 3.9.2 هستش
        چند روز پیش هم جستجو کردم یه افزونه بود به نام wp-parsidate این رو که نصب می کنیم هم داخل سایت و هم پیشخوان اعداد درست میشه ولی یه جورایی وردپرس قاطی می کنه جوری که مجبور شدم دوباره نصب کنم .
        اگه راهی داره بنویسید ممنون میشم و در مورد نوار ابزار چسبنده هم چیزی نگفتید ؟

        تشکر منتظر جوابتون هستم

        توسط محمد حسین پاسخ

        1. سلام
          باید کل فایلهای قالب اعم از فانکشن و استایل رو توی یه برنامه ویرایش متنی به جز notepad++ به صورت UTF8 دربیاری. اون علامت همون ممیز جداکننده سه رقم سه رقم اعداد هست که به دلیل ناشناس بودن کاراکتر، به صورت ناشناس ظاهر میشه.

          توسط ام ال دیزاین پاسخ

دیدگاه خود را بیان کنید