پرش به محتویات

"Filter: bricks/code/echo_function_names"

یادداشت

با شروع در Bricks 1.9.7، باید به صراحت هر نام تابعی را که می‌خواهید از طریق برچسب پژواک داده پویا Bricks با استفاده از فیلتر جدید bricks/code/echo_function_names فراخوانی کنید، اجازه دهید. می‌توانید آن را به طرح زمینه کودک Bricks یا افزونه قطعه کد دلخواه خود اضافه کنید.

add_filter( 'bricks/code/echo_function_names', function() {
  return [
    'my_custom_function',
    'another_custom_function',
  ];
} );

برای استفاده از توابع اکو، ابتدا باید «اجرای کد» را برای نقش کاربری یا کاربر مناسب در داشبورد وردپرس خود در زیر «Bricks – تنظیمات – کد سفارشی» فعال کنید (تصویر زیر را ببینید).

bricks-builder-code-execution-1024x803.png

اجرای کد: برای نقش کاربر "Administrator" فعال است

مطمئن شوید که اجرای کد را فقط برای کاربران و نقش‌های کاربری که 100% به آنها اعتماد دارید فعال کنید.

شما می‌توانید لیستی از تمام عملکردهای سایت خود را که از طریق برچسب echo به عنوان بخشی از نتایج "بازبینی کد" فراخوانی شده اند، دریافت کنید. در اینجا به این صورت است:

  1. به Bricks > Settings > Custom code بروید
  2. روی دکمه "شروع: بررسی کد" کلیک کنید
  3. پس از اتمام، "Echo tags" را از منوی کشویی انتخاب کنید.
  4. قطعه کد را در زیر «Echo: Function names» کپی کنید و آن را در فایل functions.php نام فرزند Bricks خود جای‌گذاری کنید. اطمینان حاصل کنید که هر نام تابع ناشناخته یا ناخواسته را از آرایه حذف کرده اید.

bricks-code-review-echo-function-names.png

Using patterns (regex) to simplify echo function calls

Bricks 1.9.8 انعطاف پذیری بیشتری را در مورد فراخوانی عملکرد اکو ارائه می‌دهد.

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

اگر نام تابع شما با هر یک از آن چک های regex مطابقت دارد، می‌توان آن را از طریق تگ echo فراخوانی کرد.

مثال: فراخوانی هر توابعی که با brx_ شروع می‌شود مجاز است:

add_filter( 'bricks/code/echo_function_names', function($function_name) {
  return [
    '@^brx_', // Allow all functions that start with "brx_"
  ];
} );

Check function names against your own custom logic

به جای برگرداندن یک آرایه، می‌توانید هر گونه بررسی سفارشی را با نام خود تابع یا هر منطق دیگری که می‌خواهید اجرا کنید، انجام دهید. فیلتر نام تابع ($function_name) را به عنوان آرگومان برای کمک به تصمیم گیری های پویاتر دریافت می‌کند. برگرداندن یک بولی (true یا false)

مثال: اجازه اجرای تابع بر اساس پیشوند نام تابع

add_filter('bricks/code/echo_function_names', function($function_name) {
  // Only allow functions that start with "custom_"
  return strpos($function_name, 'custom_') === 0;
});

این مثال از یک بررسی ساده برای تعیین اینکه آیا تابع با custom_ شروع می‌شود استفاده می‌کند. اگر چنین است، true را برمی‌گرداند و به تابع اجازه می‌دهد تا اجرا شود. در غیر این صورت، false را برمی‌گرداند.

مثال: هر تابعی را زمانی که حالت توسعه فعال است اجرا کنید

add_filter( 'bricks/code/echo_function_names', function($function_name) {
  return defined( 'WP_DEVELOPMENT_MODE' ) ? WP_DEVELOPMENT_MODE : false;
} );

ثابت WP_DEVELOPMENT_MODE PHP از نسخه 6.3 در هسته وردپرس در دسترس بوده است. ما از آن فقط به عنوان مثال استفاده می‌کنیم. شما می‌توانید از هر ثابت PHP سفارشی دلخواه خود با تعریف آن در فایل functions.php تم فرزند خود استفاده کنید.

مثال: اگر کاربر فعلی بتواند پست ها را ویرایش کند عملکرد را اجرا کنید

add_filter( 'bricks/code/echo_function_names', function($function_name) {
  return current_user_can( 'edit_posts' );
} );