اسکریپت مدیریت محتوای وردپرس از برترین اسکریپت های ساخت وب سایت خبری و مجله یا موضوعات گوناگون است که قابلیت چند نویسندگی را نیز به ما می دهد. گاهی اوقات تعداد نویسندگان به حدی زیاد است که کنترل مطالب ارسالی به طور دستی بسیار دشوار و زمانبر است یا وب سایتی داریم که تعداد مطالب آن بسیار زیاد است و قصد داریم از ارسال مطالب تکراری و مشابه جلوگیری کنیم. منطقی ترین راه برای انجام اینکار، کنترل عنوان مطلب جدید و جستجوی آن بین مطالب قبلی است و در صورت وجود عنوان مشابه پیش از ثبت و ارسال مطلب به نویسنده هشدار دهد.
جهت انجام چنین روشی کافیست کد زیر را در فایل functions.php
قالبتان قرار دهید:
function betalk_disallow_posts_with_same_title($messages) {
global $post;
global $wpdb ;
$title = $post->post_title;
$post_id = $post->ID ;
$wtitlequery = "SELECT post_title FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post' AND post_title = '{$title}' AND ID != {$post_id} " ;
$wresults = $wpdb->get_results( $wtitlequery) ;
if ( $wresults ) {
$error_message = 'قبلا یک مطلب با این عنوان در سایت ارسال شده است';
add_settings_error('post_has_links', '', $error_message, 'error');
settings_errors( 'post_has_links' );
$post->post_status = 'draft';
wp_update_post($post);
return;
}
return $messages;
}
add_action('post_updated_messages', 'betalk_disallow_posts_with_same_title');
با قرار دادن این کد، در صورتی که عنوان مطلب تکراری باشد، مطلب به صورت پیش نویس ذخیره خواهد شد و کل مطلب از دست نخواهد رفت!