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

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

  • このトピックには8件の返信、2人の参加者があり、最後にひゃっかいだんにより4年、 10ヶ月前に更新されました。
8件の返信スレッドを表示中
  • 投稿者
    投稿
    • #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への移行も考慮に入れてブログを運営していこうと思います。

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

8件の返信スレッドを表示中
返信先: 内部テキストリンクがブログカードに変換されてしまうで#61713に返信
あなたの情報:




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