به روز رسانی پست ها از طریق داشبورد وردپرس یک کار ساده و آسان است.

با این حال، می‌توانید ویژگی‌های پیشرفته‌تر وردپرس را نیز آزمایش کنید یا روش عملکرد توابع وردپرس را در طول آن بیاموزید process. برای انجام این کار، به روز رسانی پست ها را در نظر بگیرید wp_update_post() تابع.

در این آموزش به توضیح وردپرس می پردازیم wp_update_post() عملکرد و محبوب ترین موارد استفاده آن را پوشش می دهد.

پارامترهای تابع wp_update_post وردپرس

را wp_update_post() تابع پست های موجود در پایگاه داده را به روز می کند. پارامترهای آن را در زیر بررسی کنید:

wp_update_post( $postarr, $wp_error, $fire_after_hooks );
  • $postarr – آرایه داده های پست.
  • $wp_error – تعیین می کند که آیا a را برگرداند یا خیر WP_Error کلاس در صورت بروز خطا تنظیم به عنوان نادرست به صورت پیش فرض.
  • $fire_after_hooks – تصمیم می گیرد که قلاب های پس از درج را شلیک کند یا خیر. به طور پیش فرض، به عنوان تنظیم شده است درست است، واقعی.

در مورد مقادیر بازگشتی، تابع در صورت موفقیت، شناسه پست را برمی گرداند. در غیر این صورت خواهید دید WP_Error یا مقدار صفر

به عبارت دیگر، wp_update_post() آرایه ای از داده های پست را به عنوان آرگومان می گیرد و پست های مربوطه را در پایگاه داده با داده های پست جدید به روز می کند.

بررسی کنید منبع تابع از wp-includes/post.php فایل زیر:

تابع wp_update_post($postarr = array()، $wp_error = false، $fire_after_hooks = true) {

function wp_update_post( $postarr = array(), $wp_error = false, $fire_after_hooks = true ) {
	if ( is_object( $postarr ) ) {
		// Non-escaped post was passed.
		$postarr = get_object_vars( $postarr );
		$postarr = wp_slash( $postarr );
	}

	// First, get all of the original post fields.
	$post = get_post( $postarr['ID'], ARRAY_A );

	if ( is_null( $post ) ) {
		if ( $wp_error ) {
			return new WP_Error( 'invalid_post', __( 'Invalid post ID.' ) );
		}
		return 0;
	}

	// Escape data pulled from DB.
	$post = wp_slash( $post );

	// Passed post category list overwrites existing category list if not empty.
	if ( isset( $postarr['post_category'] ) && is_array( $postarr['post_category'] )
		&& count( $postarr['post_category'] ) > 0
	) {
		$post_cats = $postarr['post_category'];
	} else {
		$post_cats = $post['post_category'];
	}

	// Drafts shouldn't be assigned a date unless explicitly done so by the user.
	if ( isset( $post['post_status'] )
		&& in_array( $post['post_status'], array( 'draft', 'pending', 'auto-draft' ), true )
		&& empty( $postarr['edit_date'] ) && ( '0000-00-00 00:00:00' === $post['post_date_gmt'] )
	) {
		$clear_date = true;
	} else {
		$clear_date = false;
	}

	// Merge old and new fields with new fields overwriting old ones.
	$postarr                  = array_merge( $post, $postarr );
	$postarr['post_category'] = $post_cats;
	if ( $clear_date ) {
		$postarr['post_date']     = current_time( 'mysql' );
		$postarr['post_date_gmt'] = '';
	}

	if ( 'attachment' === $postarr['post_type'] ) {
		return wp_insert_attachment( $postarr, false, 0, $wp_error );
	}

	// Discard 'tags_input' parameter if it's the same as existing post tags.
	if ( isset( $postarr['tags_input'] ) && is_object_in_taxonomy( $postarr['post_type'], 'post_tag' ) ) {
		$tags      = get_the_terms( $postarr['ID'], 'post_tag' );
		$tag_names = array();

		if ( $tags && ! is_wp_error( $tags ) ) {
			$tag_names = wp_list_pluck( $tags, 'name' );
		}

		if ( $postarr['tags_input'] === $tag_names ) {
			unset( $postarr['tags_input'] );
		}
	}

	return wp_insert_post( $postarr, $wp_error, $fire_after_hooks );
}

مطالعه پیشنهادی

wp_update_post رسمی وردپرس Documentation صفحه

پیشنهاد می‌کنیم بخوانید:  functions.php در وردپرس چیست و چگونه می توانید آن را سفارشی کنید

روش استفاده از تابع wp_insert_post
روش استفاده از تابع get_post_meta وردپرس

روش استفاده از تابع wp_update_post در وردپرس

برای استفاده از wp_update_post() تابع، ابتدا باید یک آرایه پیش فرض ایجاد کنید که به عنوان پارامتر ارسال می شود. سپس، تابع را با فیلدهایی که می خواهید تغییر دهید پر کنید، یعنی:

  • شناسه – یک شماره منحصر به فرد اختصاص داده شده به هر پست.
  • پست_نویسنده – شناسه کاربری نویسنده پست.
  • پست_محتوا – ارسال محتوا، از جمله متن و تصاویر.
  • تاریخ ارسال – تاریخ و ساعت انتشار پست
  • post_date_gmt – منطقه زمانی GMT ​​که تاریخ ارسال در آن نوشته شده است.
  • post_گزیده – گزیده تعریف شده توسط کاربر پست ها.
  • عنوان_پست – عنوان کامل پست
  • post_status – وضعیت پست فعلی، مانند منتشر شده، پیش نویس یا سطل زباله.
  • نظر_وضعیت – فعال یا غیرفعال کردن نظرات برای یک پست داده شده
  • نوع_پست – یک نوع پست پیش فرض، مانند a page یا یک پیوست
  • post_modified – آخرین تاریخ و زمان تغییر پست ها.
  • post_modified_gmt – منطقه زمانی GMT ​​که پست در آن تغییر کرده است.
  • ping_status – یک پست را برای پینگ بک باز یا ببندید.
  • post_password – رمز عبور پست در صورت عدم وجود رمز خالی خواهد بود.
  • post_parent – شناسه پست والدین در صورت وجود.
  • comment_count – تعداد نظرات روی یک پست.

نکته حرفه ای

را wp_update_post() تابع می تواند یک حلقه بی نهایت ایجاد کند. زمانی اتفاق می افتد نوع_پست به عنوان تنظیم شده است تجدید نظر و wp_update_post() در داخل استفاده می شود save_post hook. برای جلوگیری از این امر، مطمئن شوید که نوع_پست به عنوان تجدید نظر تنظیم نشده است.

نمونه های تابع wp_update_post وردپرس

چند مورد استفاده محبوب را بررسی کنید wp_update_post() تابع.

پست متا را به روز کنید

با wp_update_post()، همچنین می توانید ابرداده های پست های وردپرس خود را برای بهبود تلاش های سئو خود به روز کنید. فقط از کد زیر استفاده کنید:

$mydata = array(
  'ID' => $post_id,
  'post_content' => $content,
  'meta_input' => array(
  'meta_key' => $meta_value,
  'next_meta_key' => $next_meta_value
   )
 );

wp_update_post( $data );

به روز رسانی پست

پیشنهاد می‌کنیم بخوانید:  4 روش موثر برای جلوگیری از اسپم نظرات وردپرس (افزونه، reCAPTCHA و ویژگی های داخلی)

این امکان وجود دارد که یک پست را راحت تر به روز کنید wp_update_post(). تنها کاری که باید انجام دهید این است که شناسه پست را به همراه عناصری که می خواهید به روز کنید ارسال کنید. به خاطر داشته باشید که نام عناصر باید با نام های موجود در پایگاه داده شما مطابقت داشته باشد.

$my_awesome_post = array(
      'ID'           => 10,
      'post_title'   => 'This is my awesome post title',
      'post_content' => 'This is my awesome updated content.',
  );

// Update the specified post into the database
  wp_update_post( $my_post );
Processing $wp_error

توصیه می کنیم اگر به روز رسانی کار نمی کند، نمایش خطا را با کد زیر فعال کنید.

<?php
wp_update_post( $current_item, true );						  
if (is_wp_error($post_id)) {
	$errors = $post_id->get_error_messages();
	foreach ($errors as $error) {
		echo $error;
	}
}
?>

هنگام انتشار تغییرات در تولید، مطمئن شوید که نمایش خطا را دوباره غیرفعال کنید.

به طور خودکار یک پست در آینده منتشر کنید

می توانید پستی را تنظیم کنید که در آینده منتشر شود. به عنوان مثال، نمونه کد زیر یک پست را برای انتشار فردا برنامه ریزی می کند:

$time = strtotime( 'tomorrow' );
$my_post = array(
    'ID'            => 1,
    'post_status'   => 'future',
    'post_date'     => date( 'Y-m-d H:i:s', $time ),
    'post_date_gmt' => gmdate( 'Y-m-d H:i:s', $time ),
);
wp_update_post( $my_post );
بنر میزبانی وردپرس
روش استفاده از wp_update_post برای به روز رسانی پست های وردپرس 2

نتیجه

به روز رسانی پست های خود از طریق یک تابع یک راه عالی برای کسب اطلاعات بیشتر در مورد ویژگی های پیشرفته وردپرس است.

در این آموزش به این موارد پرداختیم wp_update_post() عملکرد، روش کارکرد آن را نشان داده و چند مورد استفاده مفید را ارائه کرده است.

ما امیدواریم که اکنون متوجه شده باشید wp_update_post() عملکرد بهتری داشته باشد و بتواند با موفقیت در پروژه های وردپرس خود از آن استفاده کند.
اگر سوالی دارید، راهنمای وردپرس ما را بررسی کنید یا در زیر نظر بگذارید.