内部テキストリンクがブログカードに変換されてしまう

Simplicityの特徴 フォーラム 不具合報告 内部テキストリンクがブログカードに変換されてしまう

このトピックには8件の返信が含まれ、2人の参加者がいます。5 ヶ月、 1 週前 ひゃっかいだん さんが最後の更新を行いました。

  • 投稿者
    投稿
  • #61678 返信

    ひゃっかいだん

    記事中にブログ内部に向けたテキストリンクを貼り、かつ通常の内部リンクブログカードを同記事内に設置すると、テキストリンク側のURLがブログカードに変換されてしまう不具合を発見しました。
    さらに記事下の関連記事からすべてのCSSも崩れてしまいます。

    不具合の出る状況にしたページを作りましたので、ご確認ください。
    https://gadget.hyakkaidan.com/page-4922/

  • #61686 返信
    わいひら
    わいひら
    キーマスター

    これは、エディターにワードのように入力されているのでしょうか?

    エディターに入力してるHTMLのソースコードをいただければと思います。

  • #61693 返信

    ひゃっかいだん

    返答ありがとうございます。
    Gutenbergを使用し、ビジュアルエディターから通常の手段を用いてテキストリンクを生成、URLを埋め込んでおります。
    コードエディターではこのようなソースになります。

    <!-- wp:paragraph -->
    <p>あああ<a href="https://gadget.hyakkaidan.com/4862/">あああ</a>あああ</p>
    <!-- /wp:paragraph -->
    
    <!-- wp:core-embed/wordpress {"url":"https://gadget.hyakkaidan.com/4862/","type":"wp-embed","providerNameSlug":"cpuのカボス漬け","className":""} -->
    <figure class="wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-cpuのカボス漬け"><div class="wp-block-embed__wrapper">
    https://gadget.hyakkaidan.com/4862/
    </div></figure>
    <!-- /wp:core-embed/wordpress -->
    
    <!-- wp:paragraph -->
    <p>あああああああああ</p>
    <!-- /wp:paragraph -->
  • #61697 返信
    わいひら
    わいひら
    キーマスター

    子テーマのfunctions.phpに以下のコードを貼り付けて、改善するか確認していただけますか?

    //figure.wp-block-embedとdiv.wp-block-embed__wrapperの除外
    add_filter('the_content', 'remove_wp_block_embeds');
    if ( !function_exists( 'remove_wp_block_embeds' ) ):
    function remove_wp_block_embeds($the_content){
      $the_content = preg_replace('/<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">(.*?'.URL_REG_STR.'.*?)<\/div><\/figure>/is', '$1', $the_content);
      return $the_content;
    }
    endif;
  • #61706 返信

    ひゃっかいだん

    指定のコードを張り付けて確認しました。
    問題は解決されず、以下のエラーが表示されます。

    Use of undefined constant URL_REG_STR – assumed ‘URL_REG_STR’ (this will throw an Error in a future version of PHP) in …

    当該のブログで使用しているphpバージョンは7.2.6です。

  • #61713 返信
    わいひら
    わいひら
    キーマスター

    定数が指定されていませんでした。
    以下のように書く必要があるかもしれません。

    //URLの正規表現
    define('URL_REG_STR', '(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)');
    
    //figure.wp-block-embedとdiv.wp-block-embed__wrapperの除外
    add_filter('the_content', 'remove_wp_block_embeds');
    if ( !function_exists( 'remove_wp_block_embeds' ) ):
    function remove_wp_block_embeds($the_content){
      $the_content = preg_replace('/<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">(.*?'.URL_REG_STR.'.*?)<\/div><\/figure>/is', '$1', $the_content);
      return $the_content;
    }
    endif;
  • #61720 返信

    ひゃっかいだん

    残念ながら定数を指定しても当該の現象は解決されませんでした。

    ひとまずはテキストリンクをブログカードを併用しない形でブログを運営していこうと思います。
    ありがとうございました。
    今後ともよろしくお願いいたします。

  • #61721 返信
    わいひら
    わいひら
    キーマスター

    新テーマのCocoonでは、これでうまくいったんですけどね。

    ただ、よくよくコードを見直してみるとこれならうまくいくかも。

    //URLの正規表現

    define('URL_REG_STR', '(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)');
    
    //figure.wp-block-embedとdiv.wp-block-embed__wrapperの除外
    add_filter('the_content', 'remove_wp_block_embeds');
    if ( !function_exists( 'remove_wp_block_embeds' ) ):
    function remove_wp_block_embeds($the_content){
      $the_content = preg_replace('/<figure class="[^"]+"><div class="wp-block-embed__wrapper">(.*?'.URL_REG_STR.'.*?)<\/div><\/figure>/is', '$1', $the_content);
      return $the_content;
    }
    endif;

    これでダメなら、書かれた方法で行った方が良いかもしれません。

  • #61728 返信

    ひゃっかいだん

    わざわざありがとうございます。
    テストしてみましたが、残念ながら不具合が修正されることはありませんでした。
    Cocoonへの移行も考慮に入れてブログを運営していこうと思います。

    非常に丁寧な対応をありがとうございました。!

返信先: 内部テキストリンクがブログカードに変換されてしまう
あなたの情報:




スポンサーリンク
アドセンス(大)
アドセンス(大)