PHP 初心者が WordPress の プラグイン 作成 ! part72 ( ココナラブログの要素ビルダー確認 )

この記事では PHP 初心者 が WordPress プラグイン を 作成 します。 part72 ではココナラブログの要素ビルダーの動作確認をします。

前回、ココナラブログの要素ビルダーを作成しました。

PHP 初心者が WordPress の プラグイン 作成 ! part71 ( ココナラブログの要素ビルダー作成・・・ )

バババっ!と作成したのでうまく動くか不安ですがやってみましょう!

少し修正

HTML関連のエスケープが漏れていたので少し修正しました。
タグをすべて除去するので不要かと考えたのですが念のための処置です。

class.coconara-builder.php

<?php
class Coconara_Builder {

    // 文字列
    private string $lineText;

    // デバッグモード
    private bool $debug;

    // 編集用の変数
    private string  $fixedText;

    /**
     * コンストラクタ
     * @param string $lineText 1行分のWordPress文字列
     * @param bool $debug デバッグフラグ
     */
    function __construct(string $lineText, bool $debug = false) {
        // デバッグモードをセット
        $this->debug = $debug;
        
        // オリジナルテキストをセット
        $this->lineText = $lineText;

        // タグを全て除去
        $fixedText = preg_replace("<(\"[^\"]*\"|'[^']*'|[^'\">])*>", "", $this->lineText);

        // リンクを無効化
        $fixedText = str_replace("http", "ttp", $fixedText);

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

        $this->fixedText = $fixedText;
    }

    /**
     * ココナラブログのbodyプロパティ用の文字列を取得する
     * @return bodyプロパティ文字列
     */
    function getBody() : string{
        
        return "<div data-v-22617325=\\\"\\\" class=\\\"c-blogBody_text\\\">{$this->fixedText}</div>";
    }

    /**
     * ココナラブログのbodyTextプロパティ用の文字列を取得する
     * @return bodyTextプロパティ文字列
     */
    function getBodyText() : string {
        return "{$this->fixedText}\\n";
    }

    /**
     * 文字列が空かどうか確認する
     */
    function isEmpty() : bool {
        return empty($this->fixedText);
    }

}

ブログを作成

 

本文が以下のように構成されていますが・・

<!-- wp:paragraph -->
<p>WordPressの本文をココナラブログ用に変換しようと思ったのですが時間がかかりそうなので・・・</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>・全てのタグを除去</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>・リンクはhを除去</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>・HTML要素をエスケープ</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>という方針で転記していこうと思います。</p>
<!-- /wp:paragraph -->

タグをすべて除去するので以下のようにココナラブログに投稿できれば成功です。

WordPressの本文をココナラブログ用に変換しようと思ったのですが時間がかかりそうなので・・・
・全てのタグを除去
・リンクはhを除去
・HTML要素をエスケープ
という方針で転記していこうと思います。

確認

それでは投稿してみます!

・・・

公開に失敗しました!

原因を探ってみるとココナラヘルパからココナラブログ要素ビルダーの生成に失敗しているようでした。

$builder = new Coconara_Builder($item, true);

まとめ

ココナラブログの要素ビルダーの動作確認を行いました。

やはりうまく動作しませんね(笑

次回は状況をもう一度確認してみようと思います。

今日はここまで!