Tag: gutenberg

  • แก้ปัญหาการแทรก tag pใน widget เมื่อใช้ gutenberg

    แก้ปัญหาการแทรก tag pใน widget เมื่อใช้ gutenberg

    หลังจากที่ WordPress มีการอัพเดตเป็น Version 5.8 ได้มีการนำ block ของ gutenberg มาใช้งานกับ widget แทนรูปแบบเดิมที่เคยใช้มา

    แก้ปัญหาการแทรก tag pใน widget เมื่อใช้ gutenberg

    ทีนี้เราดันมาเจอปัญหาว่า เวลาใช้ block ที่เป็น shortcode มันจะแทรก tag p เข้ามาอัตโนมัติ แล้วตัว shortcode ที่เราสร้างขึ้น มันดันไปตีกับตัว tag p ที่มันแทรกเข้า ทำให้ code กลายเป็นแบบนี้

    <p>[shortcode]</p>

    เราเลยต้องหาวิธีเอามันออกไป โดยเราไปไล่ code ที่ file

    wp-includes/class-wp-block.php

    แล้วก็เจอ filter ตัวนี้

    $block_content = apply_filters( "render_block_{$this->name}", $block_content, $this->parsed_block );

    เมื่อไปค้นต่อ เจอลิงก์นี้

    โดยเรานำมาปรับใช้เป็น

    add_filter( "render_block_core/shortcode", 'custom_render_block_shortcode', 10, 2);
    function custom_render_block_shortcode( $block_content, $parsed_block ) {
      $array = array (
        '<p>[' => '[', 
        ']</p>' => ']'
      );
      $block_content = strtr($block_content, $array);
    
      return $block_content;
    }