NWWG

نشان ندادن ابزارک برای مشترک‌ها (دستور شرطی)

12 پست در این موضوع قرار دارد

سلام

آموزش ساخت ابزارک در پیشخوان وردپرس

مطلب مفیدی با امکان شخصی سازی بالاست

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

«چه کدی می‌بایست در این ابزارک قرار بدهم تا کاربرانی که سطح اونها “مشترک” تعریف شده این ابزارک رو نبینند و برعکس( یعنی تنها مشترک‌ها ببینند )»

0

به اشتراک گذاری این پست


لینک به پست

این رو تست کنید


if(current_user_can('read' )){
//کد شما
}

http://codex.wordpress.org/Function_Reference/current_user_can

1

به اشتراک گذاری این پست


لینک به پست

خوب! متاسفانه کد کار نکرد

از مستندات وردپرس هم چیز کاربردیی دستگیرمان نشد :)

0

به اشتراک گذاری این پست


لینک به پست

کد رو به چه صورتی استفاده کردید ؟

1

به اشتراک گذاری این پست


لینک به پست

کد رو به چه صورتی استفاده کردید ؟

همونطور که مرتضی عزیز فرموده بودند

به ابتدای کد که در فانکشن موجود بود اضافه شد

0

به اشتراک گذاری این پست


لینک به پست

یک سوال احتمالا خیلی سطح پایین:

توی کد ها فقط امکان اجازه یا عدم اجازه عمل خاص رو میشه تعیین کرد (مثلا: یوزر_فعلی_بتواند: بخواند یا بنویسید یا پست را ویرایش کند و ....)

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

چون میخواهم چند ابزارک در پیشخوان تعریف کنیم که آنها را فقط مشترک ها ببینند نه اعضای فنی و نویسنده ها

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

0

به اشتراک گذاری این پست


لینک به پست

خوب این مورد دومی که گفتید کلا مسئله فرق کرد

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

2

به اشتراک گذاری این پست


لینک به پست

خوب پس بنده بابت کلام نارسام عذرخواهی میکنم که هم وقت شما و هم خودمو در این باره گرفتم

شبه ای که پیش اومد اینکه منظور شما از کاربر جاری چیه؟ هر یوزر خاص رو باید جداگانه تعریف کنیم یا کافیه برای هر "سطح" یکبار تعریف کنیم؟

------------------------

برای شفاف شدن اگر ممکنه مثال بزنید و کدی رو با این خصوصیات ذکر کنید

باز هم ممنون

0

به اشتراک گذاری این پست


لینک به پست

این رو تست کنید:

$user = wp_get_current_user();

if ( in_array( 'administrator', $user->roles ) ) {
// .. نمایش کد برای نقش مدیر
}

2

به اشتراک گذاری این پست


لینک به پست

بله کار کرد

و از این بابت بسیار ممنونیم!

دوتا ریزه کاری:

1. الان کد ایجابی است یعنی اگر ادمین بود بتواند ببیند، من کدی میخواهم که سلبی باشد یعنی همه بتوانند بغیر از مشترک ها

2. آیا میشود کد را اینطور نوشت؟:


$user = wp_get_current_user();
if ( in_array( 'administrator,writer', $user->roles ) ) {
// .. نمایش کد برای نقش مدیر
}

و اینکه چون وردپرس فارسی شده من نمیدونم انگلیسی هر سطح دقیقا چی میشه مثلا مدیر : Administrator نویسنده: writer مشارکت کننده: ؟؟؟ مشترک: ؟؟؟

امیدوارم اینبار تونسته باشم مفهوم رو برسونم.از پشتیبانی صمیمانتون ممنونیم

0

به اشتراک گذاری این پست


لینک به پست

تست کنید:

if ( in_array( 'administrator', $user->roles )  || in_array( 'subscriber', $user->roles ) ) {
// .. نمایش کد برای نقش مدیر
}

2. آیا میشود کد را اینطور نوشت؟:

"subscriber" >مشترک

"administrator" >مدیر

"editor" >ویرایشگر

"author" >نویسنده

"contributor" >مشارکت‌کننده

1

به اشتراک گذاری این پست


لینک به پست

با تشکر از همگی این مطلب ادامه پست پیغام‌های مدیریت است

افزونه‌ای در مخزن وردپرس برای انجام این کار یافت شد:

http://wordpress.org/plugins/admin-dashboard-site-notes

1

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

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

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط sali_ck
      با سلام و درود یک مشکلی برای بنده پیش آمده  وقتی روی پیشخوان کلیک میکنم یک صفحه سفید بالا میاد ولی نوار کناریی هستش 
      ممنون میشم کمکم کنید 
      عکس :
       

    • توسط sajadszm
      با سلام
      از وقتی فیلترینگ تلگرام شروع شده متاسفانه برای ورود به وردپرس اشکال ایجاد شده.سه تا سایت با وردپرس دارم که یکیش که هاستش دایرکت ادمین داخلیه مشکلی نداره ولی اون دوتا روی هاست اشتراکی خارج هستش که هر جفتشو از طلاهاست گرفتم.اون دوتایی که هاست خارجه برای پیشخوان مشکل داره مثلا وارد نمیشه یا اگر وارد میشه پیشخوان رو نمیاره و یا کند کار میکنه و از این قبیل مشکلات.چه کار باید بکنم؟
    • توسط sobhan0095
      سلام دوستان.
      به هیچ وجه قادر به رفتن به بخش پیشخوان وردپرس نیستم، حتی پسورد وردپرس را هم ریست کردم اما در مرحله بعدی کد کپچایی میخاد که هر چه میزنم خطا میده و ایمیل را هم برای بازیابی رمز قبول نمیکند.(طبق تصاویر زیر)
      علت چیست؟


    • توسط borna008
      سلام وقت بخیر
      سایت من دسترسی به پیشخوان نداره!
      یعنی اینکه با وارد کردن رمز و پسورد منو تنظیمات در بالا وب سایت می آید. اما با زدن هر دکمه اعلام میکنه صفحه  پیدا نشد!!

      ممنون میشم راهنمایی کنید
      نمونه صفحه را گذاشتم
      این صفحات را هم بررسی و انجام داد اما نشد
      https://www.netaram.com/رفع-مشکل-redirect-وردپرس/
      ,... 

    • توسط mani261
      سلام وردپرسی‌های عزیز؛
      من قصد دارم برای یک نوع پست سفارشی که کاربران با نقش مشترک ارسال می‌کنند امکان اختصاص نام کاربر به عنوان نویسنده رو بگذارم. وردپرس توی پیشخوان ستون Author نام فرستنده رو درست نشون می‌ده اما در حالت ویرایش فقط نام نویسندگان مدیر سایت دیده می‌شه.
      از این سایت کد زیر رو پیدا کردم که با تغییر پارامتر، تمام کاربران رو در بخش ویرایش نشون می‌ده منتها مشکل اینه که به صورت پیش‌فرض، کاربر نویسنده اصلی انتخاب نمی‌شه و با هر بار ویرایش مجدد نام نویسنده به اول فهرست (یا ادمین) تغییر پیدا می‌کنه. چه جوری
      post_author رو انتخاب کنم که هر بار تغییر نکنه؟
       
      add_filter('wp_dropdown_users', 'MySwitchUser'); function MySwitchUser($output) { //global $post is available here, hence you can check for the post type here $users = get_users(); $output = "<select id=\"post_author_override\" name=\"post_author_override\" class=\"\">"; //Leave the admin in the list $output .= "<option value=\"1\">Admin</option>"; foreach($users as $user) { $sel = ($post->post_author == $user->ID)?"selected='selected'":''; $output .= '<option value="'.$user->ID.'"'.$sel.'>'.$user->display_name.'</option>'; } $output .= "</select>"; return $output; }