رفتن به مطلب

افزونه مدیریت نوشته ها، توسط نویسنده آن مطلب


احسان

پست های پیشنهاد شده

سلام

افزونه ای هست که بتونه مانع از دیدن نوشته های سایر اعضا بشه؟

به عبارت دیگر

افزونه ای که امکان مشاهده پست های ارسال شده توسط هر کاربر رو فقط برای همون کاربر ایجاد کنه

داریم همچین چیزی؟

لینک به ارسال

اگر در حد شناخت حلقه کدها را بشناسید افزونه نمی خواد این کد را در single.php جایگزین تابع

wp_content()

کنید


<?php $authorID = get_the_author_id();
global $user_ID;
if ( is_user_logged_in() and $user_ID == $authorID ) {
wp_content();
}
else {
echo '<h4>شما مجاز به مشاهده این مطلب نیستید</h4>';
}
?>

لینک به ارسال

اگر در حد شناخت حلقه کدها را بشناسید افزونه نمی خواد این کد را در single.php جایگزین تابع

wp_content()

کنید


<?php $authorID = get_the_author_id();
global $user_ID;
if ( is_user_logged_in() and $user_ID == $authorID ) {
wp_content();
}
else {
echo '<h4>شما مجاز به مشاهده این مطلب نیستید</h4>';
}
?>

منظورم تو پنل مدیریت بود

مثلا تو بخش نوشته ها، کلی پست هست

میخوام هر نویسنده، پست های خودشو اونجا ببینه

لینک به ارسال

شدنش که می شه ولی اگر دسترسی ها را درست تنظیم کنید نیازی نداره

در ضمن بهتره صفحه ی ویرایش دلخواه را با کوئری بسازید

لینک به ارسال

می تونید با هوک ها کار کنید؟

مشکلتون با اینکه کاربران مطالب کامل را هم بتوانند ببینند چیه

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

اگر دسترسی کاربرانتان را درست کنید نه شما به زحمت می افتید نه من مبور می شم چهل دقیقه کد بنویسم و تست کنم

لینک به ارسال

می تونید با هوک ها کار کنید؟

مشکلتون با اینکه کاربران مطالب کامل را هم بتوانند ببینند چیه

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

اگر دسترسی کاربرانتان را درست کنید نه شما به زحمت می افتید نه من مبور می شم چهل دقیقه کد بنویسم و تست کنم

ممنون که به زحمت افتادید

اما فرض کنید، یکسری آدم داریم که برای اولین بار است که با وردپرس کار میکنند

از طرفی، باید در سایت پست بزنند و احتمالا ویرایش کنند.

تصور کنید، تعداد پستها زیاد بشود (چون تعداد آدمها زیاد میشود) و این آدمهای ناوارد، بخواهند به دنبال پست مورد نظرشان بگردند تا آن را ویرایش کنند

به نظر شما، بهتر نیست هر فرد پست های خودش را ببیند؟ و در ضمن امکان ارسال پست را بدون حضور ادمین نیز داشته باشد؟

البته، سرچی کردم و کدی پیدا کردم.

بد نیست، شما هم ببینیدش

<?php
/*
Plugin Name: Simplify Post Edit List
Description: Show only the author's posts in the edit list
Version: 0.1
License: GPL
Author: Sarah Gooding
Author URI: http://untame.net
*/
function mypo_parse_query_useronly( $wp_query ) {
if ( strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/edit.php' ) !== false ) {
if ( !current_user_can( 'update_core' ) ) {
global $current_user;
$wp_query->set( 'author', $current_user->id );
}
}
}
add_filter('parse_query', 'mypo_parse_query_useronly' );
?>

لینک به ارسال

خوب همینطور که آقای فخار گفتن این کار با قرار دادن اعضا روی گروه مشارکت کننده یا نویسنده و تعیین سطح دسترسی‌ها با افزونه‌هایی که تا حالا زیاد روش بحت شده ممکنه.

لینک به ارسال

کدی که گذاشتید برای گروه مشارکت کننده این کار رو می کنه که البته فقط در preview دسترسی دارند

وردپرس یک سیستم جهانی و ایمنه به نظر من بهتره کد گذاری نکنید چون به هر حال باعث کند شدن بخش می شه و برای هر کاربر یک محاسبه ی اضافی رو انجام می ده که خاصیتی در کل نداره و با بالا رفتن کاربران و درخواستهای صفحه به مشکل می خورید ولی اگر اصرار بهش دارید این بخش کد را داخل تگ php در فایل functions.php قالب کپی کنید


function mypo_parse_query_useronly( $wp_query ) {
if ( strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/edit.php' ) !== false ) {
if ( !current_user_can( 'update_core' ) ) {
global $current_user;
$wp_query->set( 'author', $current_user->id );
}
}
}
add_filter('parse_query', 'mypo_parse_query_useronly' );

لینک به ارسال

کدی که گذاشتید برای گروه مشارکت کننده این کار رو می کنه که البته فقط در preview دسترسی دارند

وردپرس یک سیستم جهانی و ایمنه به نظر من بهتره کد گذاری نکنید چون به هر حال باعث کند شدن بخش می شه و برای هر کاربر یک محاسبه ی اضافی رو انجام می ده که خاصیتی در کل نداره و با بالا رفتن کاربران و درخواستهای صفحه به مشکل می خورید ولی اگر اصرار بهش دارید این بخش کد را داخل تگ php در فایل functions.php قالب کپی کنید


function mypo_parse_query_useronly( $wp_query ) {
if ( strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/edit.php' ) !== false ) {
if ( !current_user_can( 'update_core' ) ) {
global $current_user;
$wp_query->set( 'author', $current_user->id );
}
}
}
add_filter('parse_query', 'mypo_parse_query_useronly' );

ممنون از لطفتون

به این نکته ای که گفتید، واقف هستم

اما کند شدن سایت رو به اینکه مطالب توسط یه عده ناشی از بین برن، ترجیح میدم

باز هم ممنون :)

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...