جلوگیری از به روز رسانی و یا حذف نوشته ها بعد از یک دوره زمانی در وردپرس

نویسنده :
تعداد بازدید :2,868

مدیریت وب سایت وردپرس با نویسندگان متعدد می تواند گاهی اوقات پیچیده است. پلاگین ای به نام manage editorial workflow وجود دارد ،که به شما در مدیریت سایتی با چند نویسنده کمک می کند اما ممکن است ما به یک راه حل بهتر برای مدیریت سایت با چندین نویسنده، نیاز داشته باشیم. در این نوشته ما راه حلی برای جلوگیری از به روز رسانی و یا حذف پست بعد از یک دوره زمانی را به شما ارائه می کنیم. برای مثال اگر یک نویسنده پستی را منتشر کرد، بعد از سی روز دیگر نتواند، آن را بروز رسانی و یا حذف کند و این کار را تنها سردبیر بتواند، انجام دهد.

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

Locking posts updates and deletion for older published posts in WordPress

تنها کاری که شما بایند انجام دهید، این است که کد زیر رو به قسمت توابع، قالبتان اضافه کنید.

function wpbeginner_restrict_editing( $allcaps, $cap, $args ) {

// Bail out if we're not asking to edit or delete a post ...
 if( 'edit_post' != $args[0] && 'delete_post' != $args[0]
 // ... or user is admin
 || !empty( $allcaps['manage_options'] )
 // ... or user already cannot edit the post
 || empty( $allcaps['edit_posts'] ) )
 return $allcaps;

// Load the post data:
 $post = get_post( $args[2] );

// Bail out if the post isn't published:
 if( 'publish' != $post->post_status )
 return $allcaps;

//if post is older than 30 days. Change it to meet your needs
 if( strtotime( $post->post_date ) < strtotime( '-30 day' ) ) {
 //Then disallow editing.
 $allcaps[$cap[0]] = FALSE;
 }
 return $allcaps;
}
add_filter( 'user_has_cap', 'wpbeginner_restrict_editing', 10, 3 );

این تابع در ابتدا چک می کند که آیا کاربر، امکان ویرایش یا حذف پست را دارد؟ سپس، وضعیت پست را بررسی می کند. اگر یک پست منتشر شده است و 30 روز از زمان آن گذشته است، پس قابلیت ویرایش و حذف آن پست، از کاربر گرفته می شود ولی اگر یک پست منتشر شده است، اما از زمان انتشار آن هنوز 30 روز نگذشته است، کاربر هنوز می تواند آن را ویرایش و یا حذف کند.

توجه: مدیران می توانند در هر زمانی ویرایش و حذف نوشته ها را انجام دهند.

 امیدواریم که در این مقاله به کسانی که به دنبال جلوگیری از حذف و ویرایش نوشته ها در وردپرس هستند، کمک کرده باشم. آیا شما تا به حال این کار را برای وب سایت خود کرده اید؟ در چه مواردی از چنین چیزی می توان استفاده کرد؟ نظرات خود را در این مورد برای ما بگوئید.


علاقه ی زیادی به برنامه نویسی و دنیای آی تی دارم. تمام سعی خودم رو می کنم تا در این وب سایت دانش خودم را با دیگر دوستان به اشتراک بگذارم و مطالبی هر چند کوتاه در زمینه فناوری اطلاعات منتشر کنم.
  1. محسن
    پاسخ توسط محسن :

    سلام
    متاسفانه توی ورژن جدید وردپرس این مورد قابل استفاده نیست چراکه توی لیستم مطالب این گزینه ها حذف میشن، اما وقتی روی مزلب کلیک می کنید وارد ادیتور میشه، و اونجا هم قابلیت تغییر محتوا وجود داره و هم قابلیت حذف مطلب!
    ممنون میشم راهنمایی کنید که چطور باید این مساله رو حل کر که کلا نویسنده دسترسی به حذف محتوا نداشته باشه
    ممنونم

  2. Adolph Keller
    پاسخ توسط Adolph Keller :

    گاهی اوقات ممکن است در برخی از موارد که موبوط به سایت و یا مورد خاصی هست نیاز به دانستن نظر دیگر کاربران سایت باشد , و یا ممکن است خود شما در یک مورد ویژه نیاز داشته باشید تا از نظرات دوستانتان آگاه شوید , در این جور موارد از امکان نظر سنجی سایت , استفاده میشود.

  3. بهروز
    پاسخ توسط بهروز :

    سپاس مسعود جان
    اما راهی هست که مطلب از سایت حذف بشه؟
    چون کاری که می خوام انجام بدم جوریه که دیتابیس سایت رو حجیم می کنه و باید مطالب قدیمی پاک بشند

    1. مسعود
      پاسخ توسط مسعود :

      بله هست
      ساده ترین راهش که نیاز به cron job نباشه اینه که نمایش ندید. هنگام نمایش هر پست، تاریخ آن چک بشه و اگه قدیمی تر از یک ماه بود خطای 404 نمایش داده شود
      همچنین برای کوئری های صفحات آرشیو ذکر شود که مطالب که قدیمتری از یک ماه است نمایش داده نشود.

  4. مسعود
    پاسخ توسط مسعود :

    به نظر خودم برای یک سایت مثل اشتراک لینک توسط کاربر میتونه مفید باشه. بدین صورت که برای یک بازه محدودی به کاربر امکان ویرایش داده بشه و بعد از زمان مورد نظر، این امکان گرفته بشه و یا اینکه مطمئن بشیم بعد از تأیید مطالب، تغییری در نوشته ها توسط نویسنده امان ایجاد نمی شود.

ارسال نظر

کانال را در گوگل محبوب کنید