WP Manifestindependent plugin directory
manifest / content / mrn-wp-daily-verse

MRN Daily Verse

نمایش جملات اشعار و... در سایت وردپرس

by MRN · github.com/mehran-mrn/mrn-wp-daily-verse · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/mehran-mrn/mrn-wp-daily-verse/archive/refs/heads/main.zip

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

معماری

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

قابلیت‌ها

  • مجموعه‌های نامحدود و کاملاً دلخواه
  • متن چندخطی برای یک یا چند بیت
  • عنوان، شرح، شاعر/نویسنده، منبع و تگ
  • مشخصه‌های آزاد؛ مانند دفتر: دفتر سوم و شماره بیت: ۱۲۴
  • انتخاب روزانه، ساعتی، تصادفی، هر بازدید، ترتیبی و روز هفته
  • انتخاب بهینه تصادفی بدون ORDER BY RAND()
  • نمایش AJAX اختیاری برای سازگاری حالت هر بازدید با full-page cache
  • مناسبت شمسی، میلادی، قمری و تاریخ دقیق
  • محاسبه داخلی جلالی و قمری مدنی با اصلاح یک‌روزه قمری
  • ذکر قابل‌ویرایش روزهای هفته
  • ورود آرایه JSON، استاندارد MRN و فایل قدیمی <|>
  • تشخیص فایل فال نمونه و اصلاح خودکار متن فارسی mojibake
  • خروجی JSON استاندارد و قابل انتقال
  • چهار قالب سبک و قابل تنظیم بدون صفحه‌ساز
  • پنل فارسی RTL با JavaScript خالص و بدون وابستگی سنگین

نمونه مثنوی

پس از ساخت مجموعه‌ای با نامک masnavi:

[mrn_daily_content collection="masnavi" mode="daily" template="quote" show_attributes="yes" show_tags="yes"]

نمونه فایل آماده در examples/masnavi.json قرار دارد.

شورت‌کدها

[mrn_daily_content collection="masnavi"]
[mrn_daily_content id="2" mode="hourly" template="minimal"]
[mrn_daily_content collection="quotes" mode="visit" ajax="yes"]
[mrn_today_occasions collection="occasions" calendars="solar,gregorian,lunar"]
[mrn_weekday_dhikr]

ویژگی‌های نمایش قابل override:

show_title, show_secondary, show_author, show_source, show_attributes, show_tags.

مقادیر mode: daily, hourly, random, visit, sequential, weekday.

مقادیر template: card, quote, minimal, badge.

JSON استاندارد

{
  "schema": "mrn-daily-content/v1",
  "collection": {
    "name": "اشعار مثنوی",
    "slug": "masnavi",
    "type": "poem"
  },
  "items": [
    {
      "content": "بشنو از نی چون حکایت می‌کند\nوز جدایی‌ها شکایت می‌کند",
      "author": "مولانا",
      "source": "مثنوی معنوی",
      "sort_order": 1,
      "meta": {
        "tags": ["نی‌نامه", "فراق"],
        "attributes": {
          "دفتر": "دفتر اول",
          "شماره بیت": "۱"
        }
      }
    }
  ]
}

آرایه ساده JSON نیز قابل ورود است. در پنل می‌توان نام کلیدهای فایل را به فیلدهای افزونه نگاشت کرد.

تقویم قمری

تاریخ قمری با الگوریتم مدنی محاسبه می‌شود. برای هماهنگی با رؤیت رسمی، در تنظیمات مقدار -1، 0 یا +1 روز قابل انتخاب است. یک سرویس یا افزونه دیگر نیز می‌تواند نتیجه قطعی را جایگزین کند:

add_filter(
    'mrndv_current_lunar_date',
    static fn () => array( 9, 1, 1445 )
);

ساختار خروجی فیلتر: [month, day, year].

توسعه و آزمون

php tests/run.php
powershell -ExecutionPolicy Bypass -File tools/package.ps1

نیازمندی‌ها: WordPress 6.6+ و PHP 8.1+.

تغییرات ۱.۰.۱

  • مسیرهای داخلی بسته ZIP به فرمت استاندارد و مستقل از سیستم‌عامل تغییر کردند تا فایل اصلی افزونه روی سرورهای لینوکسی بدون خطا شناسایی شود.

مجوز

GPL-2.0-or-later