مخفی کردن مطالب رمزدار در وردپرس
مخفی کردن مطالب رمزدار در وردپرس این امکان را به شما خواهد داد تا مطالبی را که به صورت رمزدار هستند را از صفحه اصلی سایت مخفی کنید تا برای دیگران قابل مشاهده نباشند. در حالت عادی هرگاه نوشتهای را به صورت رمزدار منتشر میکنید در سایت نمایش داده شده و کاربرانی که به سایت مراجعه میکنند قادر خواهند بود تا با وارد کردن رمز نوشته آن را مشاهده کنند.
در این مقاله از دکتر وردپرس به نحوه مخفی سازی مطالب وردپرس که به صورت رمزدار در سایت منتشر شدهاند میپردازم تا صرفا کسانی که لینک مستقیم نوشته را دارند با وارد کردن رمز نوشته بتوانند به ان دسترسی داشته باشند.
مخفی کردن مطالب رمزدار در وردپرس
برای شروع کار نیاز به نصب افزونه خاصی ندارید و با استفاده از دو قطعه کد ساده از طریق فایل فانکشن قالب خود قادر خواهید بود تا نوشته رمزدار خود را از وبسایت مخفی کنید تا در لابهلای مطالب که به صورت عمومی و یا خصوصی منتشر شدهاند نمایش داده نشود.
برای شروع کار به ویرایشگر قالب خود مراجعه کرده و کدهای زیر را در مکان مناسبی از فایل فانکشن(functions.php) قالب خود قرار دهید.
function doctorwp_password_post_filter( $where = '' ) { if (!is_single() && !is_admin()) { $where .= " AND post_password = ''"; } return $where; } add_filter( 'posts_where', 'doctorwp_password_post_filter' );
همانطور که در قطعه کد فوق مشاهده میکنید، با استفاده از این فیلتر نوشتههای رمزدار در سایت صرفا برای کاربرانی که دارای نقش کاربری مدیرکل هستند نمایش داده خواهد شد و کاربرانی که دارای نقش کاربری همچون نویسنده، ویرایشگر، مشتری و… باشند قادر به مشاهده آن نخواهند بود.
بنابراین برای اینکه بتوان این نوشته را برای کاربران در دسترس قرار داد میبایست لینک مستقیم نوشته را در اختیار آنها قرار دهید تا پس از وارد شدن به لینک نوشته رمز آن را وارد کرده و قادر به مشاهده ان باشند.
همانطور که در بالا نیز گفتیم کد بالا امکان مشاهده مطلب رمزدار وردپرس برای تمامی کاربران به جز مدیرکل را غیرفعال خواهد کرد، بنابراین در صورتی که سایت شما دارای چندین نویسنده باشد و نویسندگانی که امکان دسترسی به ویرایش نوشته را داشته باشند دیگر قادر به مدیریت نوشته رمزدار نخواهند بود.
پس لازم است تا با تغییری کوچک در قطعه کد بالا امکان ویرایش نوشته توسط نویسنده را نیز فراهم کنید. برای این منظور کافیست تا به جای کد فوق از کد زیر در فایل فانکشن خود به همان صورت بالا استفاده کنید.
function doctorwp_password_post_filter( $where = '' ) { if (!is_single() && !current_user_can('edit_private_posts') && !is_admin()) { $where .= " AND post_password = ''"; } return $where; } add_filter( 'posts_where', 'doctorwp_password_post_filter' );
حال با افزودن این کد نویسندگانی که امکان ویرایش و دسترسی به ویرایش نویسندههای دیگر را دارند قادر خواهند بود تا نوشتههای رمزدار را مشاهده کرده و آنها را ویرایش کنند. اگر در سایت وردپرسی خود امکان ویرایش مطالب توسط نویسندگان و یا کاربر خاصی وجود ندارد میتوانید با استفاده از مقاله تغییر دسترسی کاربران در وردپرس با Advanced Access Manager این امکان را برای آنها فراهم کنید.