MENUCLOSE
twitter ツイッターfeedlyRSS

オンスタでは、オンラインで学習するために役立つコンテンツを掲載しています。そのほか、UdemyをはじめとしたEラーニングサービスの紹介も行っています。

オンスタ | オンラインで学習するための近道になるサイト
【WordPress】編集画面のビジュアルエディタでタグが消える問題の解決策

【WordPress】編集画面のビジュアルエディタでタグが消える問題の解決策

公開日:2019年07月30日
最終更新日:2019年07月30日
オンスタ運営
ホーム > スニペット > 【WordPress】編集画面のビジュアルエディタでタグが消える問題の解決策
このエントリーをはてなブックマークに追加
aタグでリンクブロックを作ったときなどに、WordPressのビジュアルエディタを使うと該当のタグが削除されるため、それを回避するためのスニペット。 SVGとか消されてしまうのも解消できるようにしております。
<?php

function growp_override_mce_options( $init_array ) {
  global $allowedposttags;

  $init_array['valid_elements']          = '*[*]';
  $init_array['extended_valid_elements'] = '*[*]';
  $init_array['valid_children']          = '+a[' . implode( '|', array_keys( $allowedposttags ) ) . ']';
  $init_array['indent']                  = true;
  $init_array['wpautop']                 = false;
  $init_array['force_p_newlines']        = false;

  return $init_array;
}

add_filter( 'tiny_mce_before_init', 'growp_override_mce_options' );

function growp_allowed_post_tags() {
  global $allowedposttags;
  $additional_tags = array(
    'div'    => array(
      'style' => true
    ),
    'ruby'   => array(
      'class'        => true,
      'src'          => true,
      'width'        => true,
      'height'       => true,
      'frameborder'  => true,
      'scrolling'    => true,
      'marginheight' => true,
      'marginwidth'  => true,
      'style'        => true
    ),
    'rp'     => array(
      'class'        => true,
      'src'          => true,
      'width'        => true,
      'height'       => true,
      'frameborder'  => true,
      'scrolling'    => true,
      'marginheight' => true,
      'marginwidth'  => true,
      'style'        => true
    ),
    'rt'     => array(
      'class'        => true,
      'src'          => true,
      'width'        => true,
      'height'       => true,
      'frameborder'  => true,
      'scrolling'    => true,
      'marginheight' => true,
      'marginwidth'  => true,
      'style'        => true
    ),
    'iframe' => array(
      'class'        => true,
      'src'          => true,
      'width'        => true,
      'height'       => true,
      'frameborder'  => true,
      'scrolling'    => true,
      'marginheight' => true,
      'marginwidth'  => true,
      'style'        => true
    ),
    'main'   => array(
      'class'        => true,
      'src'          => true,
      'width'        => true,
      'height'       => true,
      'frameborder'  => true,
      'scrolling'    => true,
      'marginheight' => true,
      'marginwidth'  => true,
      'style'        => true
    ),
    'aside'  => array(
      'class'        => true,
      'src'          => true,
      'width'        => true,
      'height'       => true,
      'frameborder'  => true,
      'scrolling'    => true,
      'marginheight' => true,
      'marginwidth'  => true,
      'style'        => true
    ),
    'script' => array(
      'class'        => true,
      'src'          => true,
      'width'        => true,
      'height'       => true,
      'frameborder'  => true,
      'scrolling'    => true,
      'marginheight' => true,
      'marginwidth'  => true,
      'style'        => true
    ),
    'svg'    => array(
      'class'        => true,
      'src'          => true,
      'width'        => true,
      'height'       => true,
      'frameborder'  => true,
      'scrolling'    => true,
      'marginheight' => true,
      'marginwidth'  => true,
      'style'        => true,
      'xmlns'        => true,
      'xmlns:xlink'  => true,
    ),
    'path'   => array(
      'class'        => true,
      'src'          => true,
      'width'        => true,
      'height'       => true,
      'frameborder'  => true,
      'scrolling'    => true,
      'marginheight' => true,
      'marginwidth'  => true,
      'transform'    => true,
      'data-name'    => true,
      'style'        => true,
      'xmlns'        => true,
      'xmlns:xlink'  => true,
      'fill-rule'    => true,
      'd'            => true,
      '/'            => true,
    ),
  );
  foreach ( $additional_tags as $tag => $allow_elements ) {
    if ( ! isset( $allowedposttags[ $tag ] ) ) {
      $allowedposttags[ $tag ] = $allow_elements;
    } else {
      $new_allowed             = array_merge( $allowedposttags[ $tag ], $allow_elements );
      $allowedposttags[ $tag ] = $new_allowed;
    }
  }
}
add_action( 'after_setup_theme', 'growp_allowed_post_tags' );


 

web制作者にオススメのオンライン学習サイト「Udemy」

世界最大級のコースがラインナップ!電子書籍サイト「Udemy」

世界最大級のコースがラインナップ!オンライン学習サイト「Udemy」

「Udemy」ではいつでもどんなトピックでも、専門家が教える何千ものコースを用意されており、無料で学べるコースも多数あります。もうちょっと勉強したいな。スキルアップしたいな。と思ったら是非チェックしてみてください。