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

"Filter: bricks/frontend/render_data"

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

add_filter( 'bricks/frontend/render_data', function( $content, $post, $area ) {
  // Do something

  return $content;
}, 10, 3 );

فراخوانی فیلتر سه پارامتر را دریافت می‌کند:

  • $content: محتوای HTML که در شرف بازگشت است. این یک نوع رشته است.
  • $post: شیء پستی که محتوا برای آن تولید می‌شود. این یک نمونه از کلاس WP_Post است.
  • $area: رشته ای که ناحیه صفحه در حال رندر شدن را مشخص می‌کند (به عنوان مثال، "هدر"، "محتوا"، "پانویس"). از نسخه 1.5.4 موجود است.

Example: Add a unique ID to each heading

مثال زیر نشان می‌دهد که چگونه می‌توان یک ویژگی ID منحصر به فرد به هر عنوان در محتوای تولید شده اضافه کرد.

add_filter('bricks/frontend/render_data', function($content, $post, $area) {
  // Iterate over each heading tag
  $content = preg_replace_callback(
    '/(<h[1-6](.*?))>(.*?)(<\/h[1-6]>)/i',
    function($matches) {
      // Add 'id' attribute if it doesn't exist
      if (strpos($matches[2], 'id=') === false) {
        // Use heading's content as the ID
        $matches[0] = $matches[1] . ' id="' . sanitize_title($matches[3])
        . '">' . $matches[3] . $matches[4];
      }

      // Return the (potentially) modified heading tag
      return $matches[0];
    },
    $content // Content to modify
  );

  // Return modified content
  return $content;
}, 10, 3);

در این مثال، یک تابع callback در فراخوانی تابع add_filter با هدف قرار دادن فیلتر bricks/frontend/render_data تعریف شده است. این تابع فراخوانی هر تگ عنوان موجود در محتوا را تغییر می‌دهد تا یک ویژگی شناسه منحصر به فرد را شامل شود. این می‌تواند برای اهداف ناوبری، مانند ایجاد فهرست مطالب مفید باشد.