ウェブサイト検索

PHP を使用した WordPress 投稿の管理 - 作成と更新


  1. <スパン>1. PHP を使用して WordPress の投稿とページを作成する – 101 チュートリアル
  2. 2.現在読んでいる記事: PHP を使用した WordPress 投稿の管理 – 作成と更新

約束どおり、これは私の最初の投稿「PHP を使用して WordPress の投稿とページを作成する – 101 のチュートリアル」の第 2 部です。この記事では、パート 1 で説明した基本的な関数と理論を拡張して、堅牢で最終的に信頼性の高い PHP ラッパー クラスを作成する方法を見ていきます。

いつものように、私は単にコードに直接取り組みたい人たちに同情します。これは私の Github リポジトリの 1 つにあります (この記事自体に直接貼り付けるには少し長すぎました!)。

私たちが達成したいこと:

  • 完全に機能し、信頼性の高い PHP 実稼働グレードのフレームワーク。
  • 投稿の作成だけでなく、既存の投稿の管理や更新も行うことができます。
  • 投稿を検索および操作できるようになります。 ID;タイトルまたはスラッグ。

この記事は、使用上の注意とステップバイステップ ガイドの 2 つのセクションで構成されています。

さっそく始めましょう!

使用法

まず、Github からclass.postcontroller.php ファイルをインクルードしているか、そのファイルの内容を PHP ドキュメントに貼り付けているかを確認してください。これがないと機能しません!このチュートリアルの後半では、このファイルのコードを見ていきます。

次のようにクラスをインスタンス化します。

$Poster = new PostController;

ポストコントローラーは次のように動作します。関連する関数を使用して投稿属性を設定します。次に、投稿を作成または更新します。投稿を更新するには、まず更新する投稿を検索して見つける必要があります。十分に簡単だと思われますか?

属性の設定

タイトル
これにより、投稿のタイトルが設定されます。ここでは HTML は許可されないため、削除されます。

$Poster->set_title( 'The Title' );

タイプ
このメソッドは、ページの投稿タイプを設定します。投稿タイプのスラッグを入力します。 「投稿」と「ページ」。カスタム投稿タイプがサポートされています。

$Poster->set_type( 'page' );

コンテンツ
このメソッドは投稿のコンテンツを設定します。 HTML は許可されます。

$Poster->set_content( '<h1>This is my awesome new post!</h1>' );

著者
これにより、投稿の作成者が設定されます。新しい著者の著者 ID を指定するだけです。これは整数でなければなりません。

$Poster->set_author_id( 12 );

ナメクジ/「名前」
これは投稿のカスタム URL パスです (有効な場合)。スラッグがすでに使用されている場合、エラーが発生する可能性があるため、これには注意してください。ただし、これを何としても回避するために検証を含めました。特殊文字や HTML は使用できません。

$Poster->set_post_slug( "new_slug" );

テンプレート (ページのみ)
このメソッドを使用すると、ページのテンプレート (ページである必要があります) を設定できます。別の投稿タイプに適用すると無視され、エラーがエラー配列に追加されます。入力の形式は「php_template_name.php」となり、各テーマに固有になります。

$Poster->set_page_template( 'fullwidth_page.php' );


このメソッドは投稿の状態を設定します。利用可能なオプション;

[ ‘draft’ | ‘publish’ | ‘pending’| ‘future’ | ‘private’ | custom registered status ]
$Poster->set_post_state( "pending" );

作成する

投稿を作成するための最低限の要件は、タイトルを設定することです。これを行うには、次のコードを使用します。

$Poster->set_title( "New Post" );

これを設定したら、create メソッドを実行するだけです。

$Poster->create();

注: このメソッドは、同じ名前の別の投稿があるかどうかを確認します (重複が作成されていないことを確認するためです)。したがってユニークなタイトルが必要になります。

検索

既存の投稿を更新するには、まず検索機能を使用して投稿を見つける必要があります。

これを行うには、検索メソッドを使用します。

$Poster->search( 'SEARCH_BY' , 'DATA' );

このメソッドは、検索する属性と検索するデータの 2 つのパラメーターを受け入れます。

タイトルで検索できます。

$Poster->search( 'title' , 'DATA' );

ID で検索できます。

$Poster->search( 'id' , 'DATA' );

またナメクジで検索することもできます。

$Poster->search( 'slug' , 'DATA' );

data パラメーターは、文字列 (タイトルまたはスラッグで検索する場合) または整数 (ID で検索する場合) を受け入れます。指定されたパラメータで投稿またはページが見つからない場合は、$errors 配列にエラーが追加されます。次のコードでこれを呼び出して表示できます。

$error = $Poster->get_var( 'errors' );
$Poster->PrettyPrint( $error );

アップデート

投稿が見つかったら、新しい属性を割り当てることができます。属性を設定したら、単に update メソッドを呼び出します。

$Poster->update();

たとえば、投稿 1 (ID=1) のタイトルを変更する場合は、次のコードを使用します。

$Poster->search( 'id', 1 );
$Poster->set_title( 'New Title' );
$Poster->update();

すべての属性はこの方法で更新できます。

変数の取得

定義された変数を取得するには、get_vars メソッドを使用できます。

$Poster->get_var( 'title' );    // Returns the title (if you have set it)
$Poster->get_var( 'type' );     // Returns the post type (if you have set it)
$Poster->get_var( 'content' );  // Returns the content (if you have set it)
$Poster->get_var( 'category' ); // Returns the category as an array (if set)
$Poster->get_var( 'template' ); // Returns the template (if you have set it)
$Poster->get_var( 'slug' );     // Returns the slug (if you have set it)
$Poster->get_var( 'auth_id' );  // Returns the author id (if you have set it)
$Poster->get_var( 'status' );   // Returns the post's status (if you have set it)
$Poster->get_var( 'errors' );   // Returns the errors array

/** AFTER YOU HAVE EITHER CREATED A POST OR SUCCESSFULLY SEARCHED FOR ONE YOU CAN USE THESE **/

	// Returns the a PHP Object of the post. This can be used to check if the search method was successful
	$Poster->get_var( 'current_post' );

	// Returns the selected post's ID (integer).
	$Poster->get_var( 'current_post_id' );

	// Returns the URL permalink of the selected post
	$Poster->get_var( 'current_post_permalink' );

それはそれ!使用方法について質問がある場合は、ここのコメント欄で質問してください。バグを見つけた場合は、Github で教えてください。

第 2 部の準備はできましたか?

クラスの構築: ステップバイステップガイド

クラスの使用方法を見てきました。最初に戻りましょう。
私たちのクラスはPostControllerと呼ばれます。

class PostController {

. . . class functions go here . . .

}

PHP クラスに詳しくない方のために説明すると、クラスは、連携して動作する関数と変数のコレクションを含むオブジェクトとして定義されます。フレームワークの作成に使用する構文と理論の詳細については、PHP.net の概要を確認してください。次にやるべきことリストは、使用するすべての変数を宣言することです。

// Variables for Post Data
public $PC_title;
public $PC_type;
public $PC_content;
public $PC_category;
public $PC_template;
public $PC_slug;
public $PC_auth_id;
public $PC_status = "publish";

// Variables for Post Updating
public $PC_current_post;
public $PC_current_post_id;
public $PC_current_post_permalink;

// Error Array
public $PC_errors;

さて、これを 3 つのブロックに分割しましょう。最初のブロックには、あなたが指定した投稿データが保持されます。これは、投稿の更新と作成に使用されるデータになります (気が付いたとき)。おそらく変数名から推測できると思いますが、ここに保存したいデータのリストを示します。

  1. タイトル
  2. タイプ (ページ/投稿など)
  3. コンテンツ
  4. カテゴリー/カテゴリー
  5. ページテンプレート
  6. ナメクジ
  7. 著者ID、および
  8. 投稿のステータス (例: 公開済み/下書き)

2 番目のブロックには、検索クエリが返す実際の WordPress 投稿データ (または作成後の投稿に関するデータ) が保持されます。 「$PC_current_post」変数は投稿全体のオブジェクトを保持します。これには、(重要なことに) 上記のデータを含む、投稿に関するすべてのデータが保持されます。同様に、投稿 ID 変数とパーマリンク変数には、既存の投稿に関するデータが保持されます。

3 番目の最後のブロックには、変数配列が 1 つだけあります。既知の「ピンチ」ポイントで問題が発生した場合、問題に関するメッセージが参照用にこの配列に追加されます。 「PC_」 を含めたのは単なる良い習慣であることに注意してください。変数名は決して曖昧であってはなりません。 PCは「PostController」の略です。これを変更する場合は、get_var() 関数の接頭辞も変更することを忘れないでください。

さて、すべての設定が完了したので、最初の関数に移りましょう。

// Creation functions
public function create() {

	if ( isset( $this->PC_title ) ) {

		if ( $this->PC_type == 'page' ) {
			$post = get_page_by_title( $this->PC_title, 'OBJECT', $this->PC_type );
		} else {
			$post = get_page_by_title( $this->PC_title, 'OBJECT', $this->PC_type );
		}

		$post_data = array(
			'post_title'    => wp_strip_all_tags($this->PC_title),
			'post_name'     => $this->PC_slug,
			'post_content'  => $this->PC_content,
			'post_status'   => $this->PC_status,
			'post_type'     => $this->PC_type,
			'post_author'   => $this->PC_auth_id,
			'post_category' => $this->PC_category,
			'page_template' => $this->PC_template
		);

		if ( ! isset( $post ) ) {
			$this->PC_current_post_id        = wp_insert_post( $post_data, $error_obj );
			$this->PC_current_post           = get_post( ( integer ) $this->PC_current_post_id, 'OBJECT' );
			$this->PC_current_post_permalink = get_permalink( ( integer ) $this->PC_current_post_id );
			return $error_obj;
		} else {
			$this->update();
			$this->errors[] = 'That page already exists. Try updating instead. Control passed to the update() function.';
			return FALSE;
		}

	} else {
		$this->errors[] = 'Title has not been set.';
		return FALSE;
	}
}

このシリーズの第 1 部「PHP を使用して WordPress の投稿とページを作成する – 101 チュートリアル」を読んだことがある人にとっては、この関数には見覚えがあるでしょう。これは、この新しい設定に適応させた後のチュートリアルの完成した機能にすぎません。この特定の関数の説明を読むには、パート 1 を参照することをお勧めします。関数自体の唯一の大きな違いは、関数を WordPress ヘッドに追加するのではなく、すぐに実行されることです。

簡単に説明すると、この関数はタイトルが設定されていることを確認します (これは投稿作成の最小要件です)。次に、既存の投稿を (タイトルごとに) チェックします。投稿が見つかると、メッセージがエラー配列に追加され、 制御がupdate() 関数に渡されます。このタイトルの投稿が見つからない場合は、$post_data を使用して新しい投稿が作成されます。現在の投稿変数 (および他の 2 つのデータ変数) は、この新しい投稿のデータを保持するために更新されます。これは、作成したばかりの投稿を確認するのに適しています。問題がある場合は、メッセージが $errors 配列に追加されます。

少し急ぎましたが、ごめんなさい。少し混乱している場合は、これに関する私の 101 の記事を参照することをお勧めします。

まだ私と一緒にいる皆さんのために、続けましょう。

// SET POST'S TITLE
public function set_title( $name ) {
	$this->PC_title = $name;
	return $this->PC_title;
}

// SET POST'S TYPE
public function set_type( $type ) {
	$this->PC_type = $type;
	return $this->PC_type;
}

// SET POST'S CONTENT
public function set_content( $content ) {
	$this->PC_content = $content;
	return $this->PC_content;
}

// SET POST'S AUTHOR ID
public function set_author_id( $auth_id ) {
	$this->PC_auth_id = $auth_id;
	return $this->PC_auth_id;
}

// SET POST'S STATE
public function set_post_state( $content ) {
	$this->PC_status = $content;
	return $this->PC_status;
} 

このビットは非常に単純です。 create() 関数と update() 関数はどちらもデータのソースとしてローカル変数を使用します。したがって、このデータを設定する方法が必要です。最初の 5 つの変数は上記のように設定されています。 「残りの 3 つはどうですか?」という質問が聞こえます。心配しないでください。これらはここにありますが、(信頼性を最大化するために) 入力を検証するために少し検証が行われていることがわかります。

// SET POST SLUG
public function set_post_slug( $slug ) {

	$args = array('name' => $slug);
	$posts_query = get_posts( $args );

	if ( ! get_posts( $args ) && ! get_page_by_path( $this->PC_slug ) ) {

		$this->PC_slug = $slug;
		return $this->PC_slug;

	} else {
		$this->errors[] = 'Slug already in use.';
		return FALSE;
	}

}

// SET PAGE TEMPLATE
public function set_page_template( $content ) {

	if ( $this->PC_type == 'page' ) {
		$this->PC_template = $content;
		return $this->PC_template;
	} else {
		$this->errors[] = 'You can only use template for pages.';
		return FALSE;
	}

}

// ADD CATEGORY IDs TO THE CATEGORIES ARRAY
public function add_category( $IDs ){

	if ( is_array( $IDs ) ) {
		foreach ( $IDs as $id ) {
			if ( is_int( $id ) ) {
				$this->PC_category[] = $id;
			} else {
				$this->errors[] = '<b>' .$id . '</b> is not a valid integer input.';
				return FALSE;
			}
		}
	} else {
		$this->errors[] = 'Input specified in not a valid array.';
		return FALSE;

	}

}

最後の 3 つは少し複雑ですが、ひどいエラーを避けるために非常に重要です。

set_post_slug()

set_post_slug() 関数は 非常に注意 する必要があります。投稿スラッグは基本的に、投稿の個別のアドレスを作成するためにベース URL の末尾に追加される文字列です。これは、WordPress による基本的な投稿識別子としても使用されます。 この投稿のスラッグは「manage-wordpress-posts-php-create-update」です。これをベース URL http://wpexplorer.com/ の末尾に追加して、この記事の一意の URL を作成します: http://www.wpexplorer.com/manage- wordpress-posts-php-create-update/。複数の投稿に同じスラッグ (つまり URL) が含まれていた場合にどのような問題が発生するか、想像できると思います。これは本当に厄介な混乱であり、可能であれば回避するのが最善です。

ポストスラッグは一意である必要があります

これが検証の理由です。何が起こっているかというと、関数は指定されたスラッグを持つ投稿を検索します。何も見つからずかつそれをパスとして含むページがない場合 (このコンテキストではナメクジと本質的に同じです)、素晴らしいことです。変数を設定します。そうでない場合は、$errors 配列にエラーが追加され、変数は設定されません (関数はブール値の FALSE を返します)。

set_page_template() と add_category()

set_page_template() は、ページ テンプレート (my_page_template.php 形式) を ページ に、ページのみに割り当てます。ここでの検証では、投稿タイプが「ページ」に設定されているかどうかを確認するだけです。 true の場合、データを保存します。そうでなくても、気にしないでください。

add_category() を使用すると、整数の配列を投稿のカテゴリに追加できます (数値を 1 つ追加するだけの場合でも、配列内にある必要があります)。整数はカテゴリ ID を表します。検証では、指定した配列を単純にループし、各セルが整数値を持っているかどうかを確認します。セルに整数値が含まれている場合、その値はマスター カテゴリ配列に追加されます。そうでない場合は無視され、エラーがエラー配列に追加されます。素晴らしい!これで、必要な変数をすべて割り当てることができます。

検索中

このチュートリアルの冒頭で、既存の WordPress 投稿を更新できるシステムを作りたいと言いました。これを可能にするには、まず編集したい投稿を見つける必要があります。このために、search() 関数を使用します。

// Search for Post function
public function search( $by, $data ) {

	switch ( $by ) {

	// SEARCH FOR POST USING IT'S ID
	case 'id' :
	
		if ( is_integer( $data ) && get_post( ( integer ) $data ) !== NULL ) {
			$this->PC_current_post           = get_post( ( integer ) $data, 'OBJECT' );
			$this->PC_current_post_id        = ( integer ) $data;
			$this->PC_current_post_permalink = get_permalink( (integer) $data );
			return TRUE;
		} else {
			$this->errors[] = 'No post found with that ID.';
			return FALSE;
		}

	break;

	case 'title' :

		$post = get_page_by_title( $data );

		if ( ! $post ) {
			$post = get_page_by_title( $data, OBJECT, 'post' );
		}

		$id = $post->ID;

		if ( is_integer($id) && get_post( (integer)$id) !== NULL ) {
			$this->PC_current_post           = get_post( (integer)$id, 'OBJECT' );
			$this->PC_current_post_id        = (integer) $id;
			$this->PC_current_post_permalink = get_permalink( (integer) $id );
			return TRUE;
		} else {
			$this->errors[] = 'No post found with that title.';
			return FALSE;
		}

		break;

		// SEARCH FOR POST USING IT'S SLUG
		case 'slug' :
		$args = array(
			'name'          => $data,
			'max_num_posts' => 1
		);
		$posts_query = get_posts( $args );
		if ( $posts_query ) {
			$id = $posts_query[0]->ID;
		} else {
			$this->errors[] = 'No post found with that slug.';
		}

		if ( is_integer($id) && get_post( (integer)$id) !== NULL ) {
			$this->PC_current_post           = get_post( (integer)$id, 'OBJECT' );
			$this->PC_current_post_id        = (integer)$id;
			$this->PC_current_post_permalink = get_permalink((integer)$id);
			return TRUE;
		} else {
			$this->errors[] = 'No post found with that slug.';
			return FALSE;
		}

		break;

		default:

		$this->errors[] = 'No post found.';
		return FALSE;

		break;

	}
}

これはsearch() 関数です。私は PHP Switch ステートメント (別の形式の IF ステートメント。この場合、複数のネストされた If より効率的です。Switch の詳細については、PHP.net マニュアルの search() を参照してください) を使用しています。関数は 2 つのパラメータを受け入れます。

1. 「検索条件」の値
2. 検索するデータ

上記のコードから、3 つの「検索方法」オプションがあることがわかります。 「ID」、「タイトル」、「スラッグ」。 それぞれをもう少し詳しく見てみましょう。

IDで検索

これは最も単純な検索方法であり、必要なのは投稿の整数 ID を知っていることだけです。指定されたデータが整数の場合、関数は WordPress データベースにクエリを送信します (組み込みの get_post() 関数を使用します)。その整数を持つ投稿が存在する場合、投稿オブジェクトが返され、PC_current_post 変数に保存されます (ID とパーマリンクも同様に保存されます)。単純!

タイトルから探す

これについては多くの説明は必要ないと思います。ID による検索とほとんど同じですが、代わりにタイトルで投稿を検索します。同じ名前の投稿/ページがある場合 ( これはお勧めしません)、最小の IDを持つ投稿が選択されます。同じ名前の投稿があることがわかっている場合は、混乱を避けるためにこの方法を使用しないでください。 注意: 次のコードが表示されます。

$post = get_page_by_title( $data );

if ( ! $post ) {
	$post = get_page_by_title( $data, OBJECT, 'post' );
}

これを行う必要がある理由は、 get_page_by_title() は投稿とページの両方のデータを返すことができますが、3 番目のパラメーターが「post」として指定されない限りページのみを返すためです。

当たり前のことを言うつもりはありませんが、タイトルで検索し、同時にタイトルを変更する場合、コードは 1 回 (初回) しか実行できないことに注意してください。その後、404 Not Found エラーが返されます。

ナメクジから探す

これは投稿を見つけるための優れた信頼性の高い方法です。前にも述べたようにナメクジは一意である必要があるため、あいまいさがあってはなりません。 「ナメクジ」の意味がわからない場合は、SET_POST_SLUG() セクションを確認してください。これを行うには、WordPress の投稿クエリを実行して、特定のスラッグを含む投稿を検索するだけで済みました。このメソッドから ID を取得し、他の 2 つのメソッドと同じ方法で現在の投稿変数を設定できます。タイトルによる検索と同様に、スラッグを一緒に検索して変更すると問題が発生します。気をつけて!

更新と管理

そうです! 検索が終わったので、実際の update() 関数に進むことができます。

// Update Post
public function update(){
	if ( isset($this->PC_current_post_id ) ) {

		// Declare ID of Post to be updated
		$PC_post['ID'] = $this->PC_current_post_id;

		// Declare Content/Parameters of Post to be updated
		if ( isset($this->PC_title ) && $this->PC_title !== $this->PC_current_post->post_title ) {
			$PC_post['post_title'] = $this->PC_title;
		}

		if ( isset( $this->PC_type ) && $this->PC_type !== $this->PC_current_post->post_type ) {
			$PC_post['post_type'] = $this->PC_type;
		}

		if ( isset($this->PC_auth_id) && $this->PC_auth_id !== $this->PC_current_post->post_type ) {
			$PC_post['post_author'] = $this->PC_auth_id;
		}

		if ( isset($this->PC_status) && $this->PC_status !== $this->PC_current_post->post_status ) {
			$PC_post['post_status'] = $this->PC_status;
		}

		if ( isset($this->PC_category) && $this->PC_category !== $this->PC_current_post->post_category ) {
			$PC_post['post_category'] = $this->PC_category;
		}

		if ( isset($this->PC_template )
			&& $this->PC_template !== $this->PC_current_post->page_template
			&& ( $PC_post['post_type'] == 'page' || $this->PC_current_post->post_type == 'page' )
		) {
			PC_post['page_template'] = $this->PC_template;
		}

		if ( isset( $this->PC_slug ) && $this->PC_slug !== $this->PC_current_post->post_name ) {
			$args = array('name' => $this->PC_slug);
		}

		if ( ! get_posts( $args ) && !get_page_by_path( $this->PC_slug ) ) {
			$PC_post['post_name'] = $this->PC_slug;
		} else {
			$errors[] = 'Slug Defined is Not Unique';
		}

		if ( isset($this->PC_content) && $this->PC_content !== $this->PC_status->post_content ) {
			$PC_post['post_content'] = $this->PC_content;
		}

		wp_update_post( $PC_post );

	}

	return( $errors );
}

嘘をつくつもりはありませんが、これは本当に簡単です。基本的に、更新関数は 8 つのポスト パラメーターのいずれかが設定されているかどうかを確認します。その場合、 wp_update_post() と互換性のある配列を作成して設定します。 wp_update_post() が実行されます。これで完了です。仕事はうまくいきました。効率性を高めるために、各変数を割り当てる前に簡単なチェックを追加します。 変更があった場合にのみ更新されます。私は少し偏見を持っていますが、これは美しいコードであると認めざるを得ません。

設定された値は、WordPress 自体によって返される値と比較されます。必要なのは単純な比較だけです。テンプレートとスラッグの IF ステートメントには、他のステートメントよりも少しだけ検証が行われていることがわかります。これらのエラーを除外するための検証は既に組み込まれていますが、二重チェックを行っても問題はありません。ページ テンプレート チェック (投稿タイプがページに設定されているかどうかを確認します) は、単に投稿以外のページ テンプレートを設定しようとするのが私のバグだからです。やりすぎてごめんなさい!一方、スラッグチェックは重要です。ナメクジの衝突は本当に望んでいません。この場合、やり過ぎということはありません。 update() についてはこれでほぼ終わりです。最後に、便利な一般関数をいくつか紹介します。

追加機能

クラスの大部分が作成されたので、便利な関数や時間を節約する関数をいくつか追加することをお勧めします。見てください。

// General functions
public function get_content() {

	if ( isset( $this->PC_current_post->post_content ) ) {
		return $this->PC_current_post->post_content;
	}

}

public function get_var( $name ) {
	$name = 'PC_'.$name;
	if ( isset( $this->$name ) ) {
		return $this->$name;
	}
}

public function unset_all() {
	foreach ( get_class_vars(get_class($this)) as $name => $default ) {
		$this->$name = $default;
	}
}

public function __toString() {
	return 'Use the PrettyPrint function to return the contents of this Object. E.g;<pre>$my_post->PrettyPrintAll();</pre>';
}

public function PrettyPrint($data) {
	echo "<pre>";
	print_r( $data );
	echo "</pre>";
}

public function PrettyPrintAll() {
	echo "<pre>";
	print_r( $this );
	echo "</pre>";

}

簡単な説明

  • get_content() : この関数は、検索した投稿のコンテンツを返します (これは WordPress によって提供され、ユーザーが設定したものではありません)。これはパラメータを受け入れません。
  • get_var( ‘var_name’ ) : 大量のデータを設定すると、混乱することがあります。これは 1 つのパラメータ、つまり必要な変数名の文字列を受け入れます。利用可能な「var_name」のリストは次のとおりです。
  • 「タイトル」 – 設定した投稿のタイトル。
  • 「type」 – 設定した投稿タイプ。
  • 「コンテンツ」 – 設定したコンテンツ。
  • 「カテゴリ」 – 設定したカテゴリ (配列を返します)。
  • 「テンプレート」 – 設定したページ テンプレート。
  • 「slug」 – 設定したナメクジ。
  • 「auth_id」 – 設定した作成者 ID。
  • 「ステータス」 – 設定した投稿ステータス。
  • 'current_post' – 検索後に返された WP Post オブジェクト。
  • 「current_post_id」 – 検索後に返された WP 投稿 ID。
  • 「current_post_permalink」 – 検索後に返された WP Post のパーマリンク。
  • 「errors」 – エラー配列 (非常に便利)。
  • unset_all() : パラメーターはありません。仕事がひとつ。クラスのインスタンスに保存されているすべてのデータを削除します。気をつけてください。
  • __toString() : これは、クラス自体のインスタンスが出力されるときに実行されるものです。エラーメッセージが出力されました。 PrettyPrintAll() を使用します。
// Start new class
$Poster = new PostController();

// Echoes error message
echo $Poster;
  • PrettyPrint() : これは、オブジェクトと配列を「pre」タグ内に適切に表示する便利な関数です。パラメータを 1 つ取ります。それは「PrettyPrinted」されるデータです。
  • PrettyPrintAll() : これは PrettyPrint() と同じですが、「PrettyPrints」がクラスのインスタンス全体 (すべての変数を含む) である点が異なります。

そしてそれはラップです!

私の記事をお読みいただきありがとうございます。この記事が有益であり、啓発的であると感じていただければ幸いです。

PostController クラスの最新バージョンは、Github: PostController にあります。このチュートリアルを気に入っていただけた場合は、ぜひ共有してください。 (メンションすると、@harribellthomas 😉 と大きく間違ってしまいます)。ご質問がある場合は、以下のコメント欄に残してください。