PHP 初心者が WordPress の プラグイン 作成 ! part69 ( WordPressのタグをココナラブログの区切り線へ変換に挑戦 )

この記事では PHP 初心者 が WordPress プラグイン を 作成 します。 part69 ではココナラブログで使用できるタグに変換する処理を実装します。

ココナラブログで使用できるタグの構成は少し理解できました。

PHP 初心者が WordPress の プラグイン 作成 ! part68 ( ココナラブログで見出し・太字・位置・引用 )

では実際に変換する処理を実装してみましょう!

ココナラブログのタグ一覧

ココナラブログで使用できるタグをおさらいします。

  • 写真・画像
  • 動画
  • 区切り線
  • リンク挿入
  • 出品サービス
  • 見出し
  • 太字
  • 位置
  • 引用

取り消し線のタグは対象外としました。
写真・画像は画像のアップロードがあるから難しそうですね😑

簡単そうなものから行きましょう!

区切り線

ココナラブログでの区切り線は以下のような構成でした。

<div data-v-22617325="" class="c-blogBody_hr" contenteditable="false"><hr></div>

WordPress側の置換対象を以下のように決めてみました!

  • <hr />
  • <!– wp:paragraph –>
  • <!– /wp:paragraph –>

hrタグと、WordPress独自のコメント構文(?)です。

これらをココナラの区切り線に置換したいと思います。

WordPress独自のコメント構文を置換するのは正規表現を使用するのがよさそうです。

PHP: preg_replace – Manual

class.coconara-helper.phpのpostメソッド抜粋

// ココナラブログの「区切り線」に置換(第1段階)
$fixItem = preg_replace(
    '<!-- [w|/](.*)?-->',
    '{{plugin:hr}}',
    $fixItem);

// HTML文字エスケープ
$fixItem = htmlspecialchars($fixItem, ENT_QUOTES);

// ココナラブログの「区切り線」に置換(第2段階)
$fixItem = str_replace('{{plugin:hr}}', '<div data-v-22617325="" class="c-blogBody_hr" contenteditable="false"><hr></div>', $item);

// body用の値
$contentForBody .= "<div data-v-22617325=\\\"\\\" class=\\\"c-blogBody_text\\\">{$fixItem}</div>";

// bodyText用の値
$contentForBodyText .= "{$fixItem}\\n";

HTML文字エスケープ処理が入っているので置換処理を2段階にしました。

・・・と気づいたのは「bodyってテキストがひな形になっている」「bodyTextはどう表現するのか」ということです。

というところで時間切れとなりました。

まとめ

WordPressのタグをココナラブログの区切り線に変換する処理を実装してみました。

変換処理はそんなに難しくないのですが本文のプロパティは2つあることに気が付きタイムアップとなりました。

また次回考えます。

今日はここまで!