مدیریت وب سایت وردپرس با نویسندگان متعدد می تواند گاهی اوقات پیچیده است. پلاگین ای به نام manage editorial workflow وجود دارد ،که به شما در مدیریت سایتی با چند نویسنده کمک می کند اما ممکن است ما به یک راه حل بهتر برای مدیریت سایت با چندین نویسنده، نیاز داشته باشیم. در این نوشته ما راه حلی برای جلوگیری از به روز رسانی و یا حذف پست بعد از یک دوره زمانی را به شما ارائه می کنیم. برای مثال اگر یک نویسنده پستی را منتشر کرد، بعد از سی روز دیگر نتواند، آن را بروز رسانی و یا حذف کند و این کار را تنها سردبیر بتواند، انجام دهد.
در این مقاله، ما به شما، نحوه جلوگیری از به روز رسانی و یا حذف پست بعد از یک دوره زمانی را آموزش خواهیم داد.
تنها کاری که شما بایند انجام دهید، این است که کد زیر رو به قسمت توابع، قالبتان اضافه کنید.
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 روز نگذشته است، کاربر هنوز می تواند آن را ویرایش و یا حذف کند.
توجه: مدیران می توانند در هر زمانی ویرایش و حذف نوشته ها را انجام دهند.
امیدواریم که در این مقاله به کسانی که به دنبال جلوگیری از حذف و ویرایش نوشته ها در وردپرس هستند، کمک کرده باشم. آیا شما تا به حال این کار را برای وب سایت خود کرده اید؟ در چه مواردی از چنین چیزی می توان استفاده کرد؟ نظرات خود را در این مورد برای ما بگوئید.
سلام
متاسفانه توی ورژن جدید وردپرس این مورد قابل استفاده نیست چراکه توی لیستم مطالب این گزینه ها حذف میشن، اما وقتی روی مزلب کلیک می کنید وارد ادیتور میشه، و اونجا هم قابلیت تغییر محتوا وجود داره و هم قابلیت حذف مطلب!
ممنون میشم راهنمایی کنید که چطور باید این مساله رو حل کر که کلا نویسنده دسترسی به حذف محتوا نداشته باشه
ممنونم
گاهی اوقات ممکن است در برخی از موارد که موبوط به سایت و یا مورد خاصی هست نیاز به دانستن نظر دیگر کاربران سایت باشد , و یا ممکن است خود شما در یک مورد ویژه نیاز داشته باشید تا از نظرات دوستانتان آگاه شوید , در این جور موارد از امکان نظر سنجی سایت , استفاده میشود.
سپاس مسعود جان
اما راهی هست که مطلب از سایت حذف بشه؟
چون کاری که می خوام انجام بدم جوریه که دیتابیس سایت رو حجیم می کنه و باید مطالب قدیمی پاک بشند
برای این کار نیاز به cron job + کد نویسی دارید.
سلام
یه سئوال
آیا راهی هست که مطالب مثلا یک ماه قبل بصورت اتوماتیک حذف بشه؟
بله هست
ساده ترین راهش که نیاز به cron job نباشه اینه که نمایش ندید. هنگام نمایش هر پست، تاریخ آن چک بشه و اگه قدیمی تر از یک ماه بود خطای 404 نمایش داده شود
همچنین برای کوئری های صفحات آرشیو ذکر شود که مطالب که قدیمتری از یک ماه است نمایش داده نشود.
به نظر خودم برای یک سایت مثل اشتراک لینک توسط کاربر میتونه مفید باشه. بدین صورت که برای یک بازه محدودی به کاربر امکان ویرایش داده بشه و بعد از زمان مورد نظر، این امکان گرفته بشه و یا اینکه مطمئن بشیم بعد از تأیید مطالب، تغییری در نوشته ها توسط نویسنده امان ایجاد نمی شود.