PHP - 101 ﺯﺍ ﻩﺩﺎﻔﺘﺳﺍ ﺎﺑ ﺱﺮﭘﺩﺭﻭ ﺕﺎﺤﻔﺻ ﻭ ﺎﻫ ﺖﺴﭘ ﺩﺎﺠﯾﺍ


  1. 1. ﻪﻌﻟﺎﻄﻣ ﻝﺎﺣ ﺭﺩ: ﺯﺍ ﻩﺩﺎﻔﺘﺳﺍ ﺎﺑ ﺱﺮﭘﺩﺭﻭ ﺕﺎﺤﻔﺻ ﻭ ﺎﻫ ﺖﺴﭘ
  2. <span>2. ﺎﺑ ﺱﺮﭘﺩﺭﻭ ﯼﺎﻫ ﺖﺴﭘ ﺖﯾﺮﯾﺪﻣ PHP – ﯽﻧﺎﺳﺭ ﺯﻭﺭ ﻪﺑ ﻭ ﺩﺎﺠﯾﺍ

.ﻢﻫﺩ ﻥﺎﺸﻧ ﺎﻤﺷ ﻪﺑ PHP ﻊﺑﺍﻮﺗ ﺯﺍ ﻩﺩﺎﻔﺘﺳﺍ ﺎﺑ ﻑﺪﻫ ﻦﯾﺍ ﻪﺑ ﯽﺑﺎﯿﺘﺳﺩ ﯼﺍﺮﺑ ﺍﺭ ﯽﺷﻭﺭ ﻡﺭﺍﺩ

ﺮﮔﺍ ﺪﺷﺎﺑ ﺪﯿﻔﻣ ﺪﻧﺍﻮﺗ ﯽﻣ ﻦﯾﺍ:

  • .ﺩﺭﺍﺩ ﺯﺎﯿﻧ ﯽﺻﺎﺧ ﺕﺎﺤﻔﺻ ﺎﯾ ﺎﻫ ﺖﺴﭘ ﻪﺑ ﺎﻤﺷ ﻪﻧﻭﺰﻓﺍ ﺎﯾ ﻉﻮﺿﻮﻣ
  • .ﺪﯿﻫﺩ ﻪﺋﺍﺭﺍ ﻪﻤﯿﺑ ﻖﺣ ﯽﮕﺘﺧﺎﺳ ﺐﺼﻧ ﮏﯾ ﺪﯿﻫﺍﻮﺧ ﯽﻣ ﺪﺷ ﻩﺩﺍﺩ ﺢﯿﺿﻮﺗ ﻻﺎﺑ ﺭﺩ ﻪﮐ ﺭﻮﻄﻧﺎﻤﻫ
  • .ﺪﯿﻨﮐ ﺭﺎﮐﺩﻮﺧ ﺍﺭ ﺖﺴﭘ ﺩﺎﺠﯾﺍ ﺪﯿﻫﺍﻮﺧ ﯽﻣ ﺎﻤﺷ
  • .ﺪﯾﺮﯿﮕﺑ ﺩﺎﯾ ﺪﯿﻫﺍﻮﺧ ﯽﻣ ﻂﻘﻓ ﺎﻤﺷ

.ﻢﯿﻨﮐ ﺩﺎﺠﯾﺍ ﻩﺩﺎﻔﺘﺳﺍ ﯼﺍﺮﺑ ﻥﺎﺳﺁ ﻭ ﯼﻮﻗ ﺖﺴﭘ ﻝﺎﺳﺭﺍ ﻢﺘﺴﯿﺳ ﮏﯾ ﺎﺗ ﻢﯿﻫﺩ ﺵﺮﺘﺴﮔ ﻢﯾﺍﻪ

.ﺖﺳﺍ ﻩﺪﻣﺁ ﻥﺁ ﯼﺎﻫﺖﺷﺍﺩﺩﺎﯾ ﻭ ﻩﺩﺎﻔﺘﺳﺍ ﺯﺍ ﯽﻟﺎﺜﻣ ﻩﺍﺮﻤﻫ ﻪﺑ ﺎﻣ ﯽﯾﺎﻬﻧ ﺩﺮﮑﻠﻤﻋ ﺎﺠﻨﯾﺍ

if ( ! function_exists( 'PostCreator' ) ) {

	function PostCreator(
		$name      = 'AUTO POST',
		$type      = 'post',
		$content   = 'DUMMY CONTENT',
		$category  = array(1,2),
		$template  = NULL,
		$author_id = '1',
		$status    = 'publish'
	) {

		define( POST_NAME, $name );
		define( POST_TYPE, $type );
		define( POST_CONTENT, $content );
		define( POST_CATEGORY, $category );
		define( POST_TEMPLATE, '' );
		define( POST_AUTH_ID, $author_id );
		define( POST_STATUS, $status );

		if ( $type == 'page' ) {
			$post      = get_page_by_title( POST_NAME, 'OBJECT', $type );
			$post_id   = $post->ID;
			$post_data = get_page( $post_id );
			define( POST_TEMPLATE, $template );
		} else {
			$post      = get_page_by_title( POST_NAME, 'OBJECT', $type );
			$post_id   = $post->ID;
			$post_data = get_post( $post_id );
		}

		function hbt_create_post() {
			$post_data = array(
				'post_title'    => wp_strip_all_tags( POST_NAME ),
				'post_content'  => POST_CONTENT,
				'post_status'   => POST_STATUS,
				'post_type'     => POST_TYPE,
				'post_author'   => POST_AUTH_ID,
				'post_category' => POST_CATEGORY,
				'page_template' => POST_TEMPLATE
			);
			wp_insert_post( $post_data, $error_obj );
		}

		if ( ! isset( $post ) ) {
			add_action( 'admin_init', 'hbt_create_post' );
			return $error_obj;
		}

	}
}

/* All available options for PostCreator()

PostCreator( 'TITLE' , 'POST TYPE' , 'POST CONTENT' , 'POST CATEGORY' , 'TEMPLATE FILE NAME' , 'AUTHOR ID NUMBER' , 'POST STATUS');

TITLE - HTML Stripped Out. Simple String.
POST TYPE - Post type slug. Eg 'post' or 'page'. Custom Post Types are supported.
POST CONTENT - Content of the Post/Page. HTML allowed.
POST CATEGORY - An array of the integer ID's of the category/categories you want to link to your post
TEMPLATE FILE NAME - File name of the template. Only for Pages. In the format 'file_name.php'.
AUTHOR ID NUMBER - Integer value. Default is 1.
POST STATUS - Available options; [ 'draft' | 'publish' | 'pending'| 'future' | 'private' | custom registered status ]

If successful, PostCreator() returns nothing.
If there is an error PostCreator() returns a WP_error object.

*/

PostCreator( 'My Lorem Ipsum', 'page', 'With a sizable serving of Dolor. This was created using Harri Bell-Thomas\'s PostCreator function.' );

ﻡﺎﮔ ﻪﺑ ﻡﺎﮔ ﯼﺎﻤﻨﻫﺍﺭ

؟ﺖﺳﺎﺠﮐ ﺭﺎﮐ ﻦﯾﺍ ﺕﺬﻟ ،ﻡﻼﺳ ﺎﻣﺍ ،ﺖﺴﯿﻧ ﺎﻬﻧﺁ ﺯﺍ ﻡﺍﺪﮐﭻﯿﻫ ﻥﺩﺮﮐ ﺺﺨﺸﻣ ﻪﺑ ﯼﺯﺎﯿﻧ ،ﻊﺑﺎ

function PostCreator(

	$name      = 'AUTO POST',
	$type      = 'post',
	$content   = 'DUMMY CONTENT',
	$category  = array(1,2),
	$template  = NULL,
	$author_id = '1',
	$status    = 'publish'
) {

	// function output here

}

.ﺖﺳﺍ ﯼﺮﮕﯾﺩ ﺵﺯﻮﻣﺁ ﯼﺍﺮﺑ ﻥﺎﺘﺳﺍﺩ ﮏﯾ ﻦﯾﺍ ﺎﻣﺍ ،ﺪﻨﺘﺴﻫ ﺪﯿﻔﻣ()PostCreator ﯽﻠﺻﺍ ﻊﺑﺎﺗ ﺵﺮ

define( POST_NAME, $name );
define( POST_TYPE, $type );
define( POST_CONTENT, $content );
define( POST_CATEGORY, $category );
define( POST_TEMPLATE, '' );
define( POST_AUTH_ID, $author_id );
define( POST_STATUS, $status );

.ﺪﻨﮐ ﯽﻣ ﺩﺎﺠﯾﺍ ﺎﻤﺷ ﯼﺍﺮﺑ ﺍﺭ ﻥﺁ ،ﺪﺸﻧ ﺮﮔﺍ ﺎﻣﺍ ،ﺪﻨﮐ ﯽﻤﻧ ﺩﺎﺠﯾﺍ ﺪﯾﺪﺟ ﺩﺭﻮﻣ ﮏﯾ ،ﺩﺮﮐ ﺍﺭ

.ﺖﺧﺍﺩﺮﭘ ﻢﯿﻫﺍﻮﺧ ﺩﺭﺍﻮﻣ ﻦﯾﺍ ﻪﻤﻫ ﻪﺑ ﯼﺪﻌﺑ ﺵﺯﻮﻣﺁ ﺭﺩ .ﺖﺴﭘ ﯼﺎﻫﻪﺳﺎﻨﺷ ﺎﯾ «Slugs» ﺮﺑ

.ﺩﻮﺷ ﯼﺮﯿﮔﻮﻠﺟ ﻪﻧﻭﺰﻓﺍ ﻪﯿﻘﺑ ﺎﺑ ﺕﻼﮑﺸﻣ ﺯﺍ ﺎﺗ ﺩﻮﺷ ﯽﻣ ﺩﺎﺠﯾﺍ ﻩﺭﺎﺑﻭﺩ ﻪﻠﺻﺎﻓﻼﺑ (!ﺩﺭﺍﺩ ﺕﺍﺮ

.ﺪﯿﻨﮐ ﻢﻫﺍﺮﻓ ﺎﻬﻧﺁ ﯼﺍﺮﺑ ﻥﺁ ﻥﺩﺮﮐ ﺵﻮﻣﺎﺧ ﯼﺍﺮﺑ ﯼﺍﻪﻨﯾﺰﮔ ﺪﯾﺎﺷ ﻭ ،ﺪﺘﻓﺍﯽﻣ ﺩﺭﺍﺩ

.ﺖﺳﺍ ﺪﮐ ﯼﺪﻌﺑ ﺖﯿﺑ ﺎﺠﻨﯾﺍ ﺭﺩ .ﻢﯾﺩﺮﮔﺯﺎﺑ ﯽﺠﻨﺳﺭﺎﺒﺘﻋﺍ ﻪﺑ ﻥﻮﻨﮐﺍ

if ( $type == 'page' ) {
	$post      = get_page_by_title( POST_NAME, 'OBJECT', $type );
	$post_id   = $post->ID;
	$post_data = get_page( $post_id );
	define( POST_TEMPLATE, $template );
} else {
	$post      = get_page_by_title( POST_NAME, 'OBJECT', $type );
	$post_id   = $post->ID;
	$post_data = get_post( $post_id );
}

؟ﻩﺮﺒﺧ ﻪﭼ ﺎﺠﻨﯾﺍ ﺐﺧ

.(ﺩﻮﺷﯽﻣ ﻪﺘﻓﺮﮔ ﻩﺪﯾﺩﺎﻧ ﺪﯿﻨﮐ ﺩﺎﺠﯾﺍ ﺩﺭﺍﺪﻧﺎﺘﺳﺍ ﺖﺴﭘ ﮏﯾ ﺪﯿﻫﺍﻮﺨﺑ ﺮﮔﺍ ﯽﻨﻌﯾ) ﺪﻧﺮﯾﺬﭙ

.ﺪﺷﺎﺑ ﻥﺁ ﺩﻮﺟﻭ ﺕﺭﻮﺻ ﺭﺩ ﺩﻮﺟﻮﻣ ﺖﺴﭘ ﯽﻧﺎﺳﺭ ﺯﻭﺭ ﻪﺑ ﺪﻧﺍﻮﺗ ﯽﻣ ﻦﯾﺍ ﺯﺍ ﯼﺍ ﻪﻧﻮﻤﻧ .ﺪﻨﺘﺴﻫ ﺪ

؛ﺵﺎﻫﺎﻨﯾﺍ .ﺩﻮﺷﯽﻣ ﻪﻓﺎﺿﺍ «admin_head» ﺏﻼﻗ ﻪﺑ ﻪﮐ ﺖﺳﺍ ﺎﻣ ﯼﻮﺗﺭﺩﻮﺗ ﻊﺑﺎﺗ  ﯼﺪﻌﺑ

function hbt_create_post() {
	$post_data = array(
		'post_title'    => wp_strip_all_tags( POST_NAME ),
		'post_content'  => POST_CONTENT,
		'post_status'   => POST_STATUS,
		'post_type'     => POST_TYPE,
		'post_author'   => POST_AUTH_ID,
		'post_category' => POST_CATEGORY,
		'page_template' => POST_TEMPLATE
	);
	wp_insert_post( $post_data, $error_obj );
}

.ﺪﯿﻧﺍﺩﺮﮔﺮﺑ ﺍﺭ ﺎﻄﺧ ﯽﺷ ﻭ ﺩﺭﺍﺬﮕﺑ ﺮﺳ ﺖﺸﭘ ﺍﺭ ﯽﺠﻨﺳﺭﺎﺒﺘﻋﺍ ﻪﮐ ﯽﺗﺭﻮﺻ ﺭﺩ ﻂﻘﻓ ﺎﻣﺍ ،ﺪﯿﻨﮐ ﺍ

if ( ! isset( $post ) ) {
	add_action( 'admin_init', 'hbt_create_post' );
	return $error_obj;
}

!ﻢﯿﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ ﻥﺁ ﺯﺍ ﺪﯿﻫﺩ ﻩﺯﺎﺟﺍ ،ﻢﯾﺍ ﻩﺩﺮﮐ ﺩﺎﺠﯾﺍ ﺍﺭ ﺩﻮﺧ ﯽﻟﺎﻋ ﺩﺮﮑﻠﻤﻋ ﺎﻣ ﻥﻮﻨﮐﺍ !ﯽﻟ

ﻩﺩﺎﻔﺘﺳﺍ

.ﺪﯿﻨﮐ ﺍﺮﺟﺍ ﻭ ﻩﺩﺮﮐ ﺩﺭﺍﻭ ﺍﺭ()PostCreator ﻊﺑﺎﺗ ﯽﮔﺩﺎﺳ ﻪﺑ

.ﻢﯿﻨﮐ ﯽﻣ ﻩﺩﺎﻔﺘﺳﺍ ﺩﻮﺧ ﯼﺎﻫﺮﺘﻣﺍﺭﺎﭘ ﺯﺍ ﺲﭙﺳ ؟ﻪﭼ ،ﻢﯿﺷﺎﺑ ﻪﺘﺷﺍﺩ ﺍﺭ ﯼﺯﺎﺳﯽﺷﺭﺎﻔﺳ ﺖﯿﻠ

PostCreator(
	'TITLE',
	'POST TYPE',
	'POST CONTENT',
	'POST CATEGORY',
	'TEMPLATE FILE NAME',
	'AUTHOR ID NUMBER',
	'POST STATUS'
);

؛ﻝﺎﺜﻣ ﻥﺍﻮﻨﻋ ﻪﺑ .ﺪﯿﻫﺩ ﺭﺍﺮﻗ ﺐﻘﻋ ﻪﺑ ﺶﻠﺳﺍ ﮏﯾ ﺎﺑ ﺍﺭ ﻥﺁ ﺪﻧﻮﺸﯿﭘ ،(ﺪﻧﺍﻩﺩﺮﮐ ﻪﻃﺎﺣﺍ

PostCreator( 'Alex\'s Post' );

.ﺖﺳﺍ ﻩﺪﺷ ﮎﺎﭘ HTML ﯼﺎﻫ ﮓﺗ ﺯﺍ ﻦﯾﺍ .ﺩﺮﯾﺬﭘ ﯽﻣ ﺍﺭ ﻪﺘﺷﺭ ﺭﺍﺪﻘﻣ ﮏﯾ TITLE ﺮﺘﻣﺍﺭﺎﭘ

.ﺪﻧﻮﺷ ﯽﻣ ﯽﻧﺎﺒﯿﺘﺸﭘ ﯽﺷﺭﺎﻔﺳ ﺖﺴﭘ ﻉﺍﻮﻧﺍ ."ﻪﺤﻔﺻ" ﺎﯾ "ﺖﺴﭘ" .ﻝﺎﺜﻣ ﯼﺍﺮﺑ ،ﺩﺮﯾﺬﭘ ﯽﻣ ﺍﺭ ﺖﺴ

PostCreator( 'Alex\'s Post', 'page' );

POST CONTENT ﺩﻮﺑ ﺪﻫﺍﻮﺧ ﻩﺪﺷ ﺩﺎﺠﯾﺍ ﻪﺤﻔﺻ/ﺖﺴﭘ ﯼﺍﻮﺘﺤﻣ ﻦﯾﺍ .ﺩﺮﯾﺬﭘ ﯽﻣ ﺍﺭ ﻪﺘﺷﺭ ﺭﺍﺪﻘﻣ ﮏ

PostCreator( 'Alex\'s Post', 'page', 'The force is strong with this one…' );

POST CATEGORY ﺪﻧﺭﺍﺩ ﺖﻘﺑﺎﻄﻣ ﻪﺤﻔﺻ/ﺖﺴﭘ ﻪﺑ ﺐﺴﺘﻨﻣ ﯼﺎﻫ ﻪﺘﺳﺩ/ﻪﺘﺳﺩ ﻪﺳﺎﻨﺷ ﺎﺑ ﺢﯿﺤﺻ ﺩﺍﺪﻋﺍ

PostCreator( 'Alex\'s Post', 'page' , 'The force is strong with this one…' , array( 1, 2 ) );

TEMPLATE FILE NAME ؛ﺩﻮﺑ ﺪﻫﺍﻮﺧ ﻦﯾﺍ ﺐﻟﺎﻗ .ﺪﻨﮐ ﯽﻣ ﺭﺎﮐ ﺕﺎﺤﻔﺻ ﯼﺍﺮﺑ ﻂﻘﻓ ﻦﯾﺍ .ﺪﻨﮐ ﯽﻣ

PostCreator(
	'Alex\'s Post',
	page',
	'The force is strong with this one…',
	array( 1, 2 ) ,
	'fullwidth_page.php'
);

AUTHOR ID NUMBER ﺖﺳﺍ ﻩﺪﻨﺴﯾﻮﻧ ﻪﺳﺎﻨﺷ ﺢﯿﺤﺻ ﺭﺍﺪﻘﻣ ﮏﯾ.

PostCreator(
	'Alex\'s Post',
	'page',
	'The force is strong with this one…',
	array( 1, 2 ) ,
	'fullwidth_page.php',
	'1'
);

POST STATUS ﺖﺳﺍ "ﻩﺪﺷ ﺮﺸﺘﻨﻣ" ﺽﺮﻓ ﺶﯿﭘ ﺭﻮﻃ ﻪﺑ .ﺪﯿﻨﮐ ﻒﯾﺮﻌﺗ ﺍﺭ ﻩﺪﺷ ﺩﺎﺠﯾﺍ ﻪﺤﻔﺻ/ﺖﺴﭘ ﺖ

[ ﯽﺷﺭﺎﻔﺳ ﺖﺒﺛ ﺖﯿﻌﺿﻭ | "ﯽﺻﻮﺼﺧ" | "ﻩﺪﻨﯾﺁ" |"ﺭﺎﻈﺘﻧﺍ ﺭﺩ" | "ﺭﺎﺸﺘﻧﺍ" | "ﺲﯾﻮﻧ ﺶﯿﭘ" ]

PostCreator(
	'Alex\'s Post',
	'page',
	'The force is strong with this one…',
	array( 1, 2 ) ,
	'fullwidth_page.php',
	'1',
	'publish'
);

ﯼﺪﻨﺑ ﻪﺘﺴﺑ

PostController :ﺪﯿﻨﮐ ﯽﺳﺭﺮﺑ Github ﺭﺩ ﺍﺭ ﺪﮐ ،ﻪﻧﺎﯿﻔﺨﻣ ﺶﯾﺎﻤﻧ ﺶﯿﭘ ﯼﺍﺮﺑ .ﻢﻨﮐ ﻪﻓﺎﺿﺍ

.ﺪﯿﺳﺮﭙﺑ ﺮﯾﺯ ﺕﺍﺮﻈﻧ ﺖﻤﺴﻗ ﺭﺩ ﻂﻘﻓ ،ﺪﯾﺭﺍﺩ ﯽﻟﺍﻮﺳ ﺮﮔﺍ