PHP 初心者が WordPress の プラグイン 作成 ! part57 ( プラグインからココナラヘルパを呼び出す )

この記事では PHP 初心者 が WordPress プラグイン を 作成 します。 part57 ではプラグインからココナラヘルパを呼び出します。

前回はココナラヘルパをプラグインで使用するための準備まで進めました。

PHP 初心者が WordPress の プラグイン 作成 ! part56 ( 開発用のWordPressに組み込む )

今回はプラグインから準備したココナラヘルパを呼び出してみようと思います。

プラグインにココナラヘルパを呼び出す実装

それではプラグインのPHPファイルにココナラヘルパを呼び出す実装を行いたいと思います。
plugin.php

<?php
/*
Plugin Name: WordPress to Coconara
*/
require_once 'class.coconara-helper.php';

// クラスをまとめてインポート(PHP7.0.0から)
use com\ik_genety\plugin\coconara\{Coconara_Helper};

add_action( 'transition_post_status', 'publishedCoconara', 10, 3 );

function publishedCoconara( $new_status, $old_status, $post ) { 
    if ( $old_status != 'publish' && $new_status == 'publish' ) { 
        // 投稿ステータスが公開以外から公開へ変化するとき実行する処理を記載 
        // $postからいろいろ取得できるので、記事IDが欲しい場合などは以下のようにする 
        //$ID = $post->ID; 

        $coconara = new Coconara_Helper(true);

        $title = "????";
        $contents = "????";

        if($coconara->post("{$title}", "{$contents}",true)) {
            //echo '投稿成功!';
        } else {
            //echo '投稿失敗!';
        }

    } 
} 
?>

こんな感じですね😃
index.phpの実装をほとんど流用しただけです。

いくつか問題

上記のコードでいくつか問題があります。

  1. タイトルと本文はどうやって取得するのか。
  2. 成功・失敗をWordPressで出力するにはどうしたらよいのか。

    「1」については以下の記事を参考に取得で起動ですね!

    WordPressで投稿IDからタイトルや本文など様々な投稿情報を取得・出力する方法 | TechMemo

    私の場合は post_titlepost_contentを使えばよさそうです。

    「2」はどうなんでしょう?functions.phpに記述する必要があったりするのでしょうか?

    プラグインでよく見るWordPresssの管理画面に独自のメッセージを表示する方法 – HPcode(えいちぴーこーど) (haniwaman.com)

    ・・・大変そうなので「2」は放置しましょう(笑

    まとめ

    今回実装したplugin.phpは以下のようになります。

    <?php
    /*
    Plugin Name: WordPress to Coconara
    */
    require_once 'class.coconara-helper.php';
    
    // クラスをまとめてインポート(PHP7.0.0から)
    use com\ik_genety\plugin\coconara\{Coconara_Helper};
    
    add_action( 'transition_post_status', 'publishedCoconara', 10, 3 );
    
    function publishedCoconara( $new_status, $old_status, $post ) { 
        if ( $old_status != 'publish' && $new_status == 'publish' ) { 
            // 投稿ステータスが公開以外から公開へ変化するとき実行する処理を記載 
            // $postからいろいろ取得できるので、記事IDが欲しい場合などは以下のようにする 
            //$ID = $post->ID; 
    
            $coconara = new Coconara_Helper(true);
    
            $title = $post->post_title;
            $contents = $post->post_content;
    
            if($coconara->post("{$title}", "{$contents}",true)) {
                //echo '投稿成功!';
            } else {
                //echo '投稿失敗!';
            }
    
        } 
    } 
    ?>

    調査に時間を取られ残念ながら確認には至りませんでした。
    次回こそは!

    今日はここまで!