رفتن به مطلب

پوسته ای خاص برای هر کاربر


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

سلام

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

لینک به ارسال

بله باید بر اساس سطح کاربری چیزی که میخواید رو لود کنید.

مثلا:


http://codex.wordpress.org/Function_Reference/current_user_can
http://codex.wordpress.org/Roles_and_Capabilities#Capabilities

لینک به ارسال

ممنون آقا مرتضی . ولی من چیزی از این دو صفحه سر در نیاوردم !! ممنون میشم یه توضیحی بدید :)

لینک به ارسال

اون صفحه ها روش کد گذاشتن برای اینکارند

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

http://wordpress.org/extend/plugins/user-theme/

لینک به ارسال

شما از این تابع همراه با یک دستور شرطی میتونید استفاده کنید مثلاً سایدربار چت فقط برای مدیران :


if (current_user_can('administrator')){
chat box code
}

administrator

editor

author

contributor

subscriber

لینک به ارسال

ممنون . اما یه مشکلی هست . من الان از این کد برای فرم ورود استفاده میکنم . وقتی کاربر مهمان هست فرم ورود براش نمایش داده میشه . اما وقتی به عنوان مدیر وارد میشه خوب قاعدتا باید طبق کدی که دادیم فرم نمایش داده نشه . ولی الان من اگه بخوام برای همه ی نقش ها این کد را بذارم دو تا مشکل وجود داره : اگه تو کد بنویسم adminstrator,author باز هم وقتی ادمین وارد میشه فرم براش نمایش داده میشه . وقتی هم بخوام برای هر نقش این کد را بنویسم تو صفحه به تعداد نقش ها فرم ورود دارم ! الان چیکار کنیم ؟! :)


<?php if (current_user_can('administrator')): else : ?>
<form class="form-2" action="<?php echo get_option('home'); ?>/wp-login.php" method="post">
<h1><span class="log-in">با نام خود وارد شده </span> یا <span class="sign-up">عضو شوید</span></h1>
<p class="float">
<label for="login"><i class="icon-user"></i>نام کاربری</label>
<input type="text" name="log" id="log" value="<?php echo wp_specialchars(stripslashes($user_login), 1) ?>" size="20" />
</p>
<p class="float">
<label for="password"><i class="icon-lock"></i>رمز عبور</label>
<input type="password" name="pwd" id="pwd" size="20" />
</p>
<p class="clearfix">
<a href="#" class="log-twitter">ثبت نام</a>
<input type="submit" name="submit" value="ورود" class="button" />
</p>
</form>​​
<?php endif; ?>

لینک به ارسال

شما اول یک شرط بزارید که کاربر وارد شده هست یا خیر با کمک تابع : is_user_logged_in

بعد برای کاربر ثبت نام نکرده هر چی دوست دارید نمایش بدید.

حالا اگر وارد شده بود شرط های مربوط به سطح کاربری رو بزارید.

لینک به ارسال

من الان این کد را گذاشتم ، ولی هیچی نشون نمیده


<?php if (is_user_logged_in): else : ?>
شما وارد نشدید
<?php endif; ?>

لینک به ارسال

<?php if (! is_user_logged_in): ?>
<form class="form-2" action="<?php echo get_option('home'); ?>/wp-login.php" method="post">
<h1><span class="log-in">با نام خود وارد شده </span> یا <span class="sign-up">عضو شوید</span></h1>
<p class="float">
<label for="login"><i class="icon-user"></i>نام کاربری</label>
<input type="text" name="log" id="log" value="<?php echo wp_specialchars(stripslashes($user_login), 1) ?>" size="20" />
</p>
<p class="float">
<label for="password"><i class="icon-lock"></i>رمز عبور</label>
<input type="password" name="pwd" id="pwd" size="20" />
</p>
<p class="clearfix">
<a href="#" class="log-twitter">ثبت نام</a>
<input type="submit" name="submit" value="ورود" class="button" />
</p>
</form>​​
<?php endif; ?>

لینک به ارسال

ممنون . این کد را هم خودم امتحان کردم . در هر دو صورت ( متصل بودن یا خارج بودن ) فرم را نشون نمی ده

لینک به ارسال

مطمئنید شرط دیگری قبل از این فرم ندارید؟

چیز خاصی نداره این کد

لینک به ارسال

کد پارسای عزیز رو تست کردم درست بود ایراد از طرف شماست

اگر با کد نویسی آشنایی ندارید بهتره به ساختار کداتون دست نزنید ولی اگر کدهای php و wordpress را می شناسید کدهای صفحه را کاملا چک کنید

لینک به ارسال

ممنون . از همگی .

به کدهای وردپرس و php آشنایی دارم تا حدودی . الان من میخوام این فرم را در سایدبار استفاده کنم . اینم کل کدهای sidebar.php هست . که با این کدی که میذارم در هر دو حالت فرم نمایش داده نمیشه


<div class="rightbody">
<center><a href="#" target="_blank"><div class="adv"></div></a><a href="https://#" target="_blank"><div class="facebook"></div></a></center> <section class="main">
<?php if (! is_user_logged_in): ?>
<form class="form-2" action="<?php echo get_option('home'); ?>/wp-login.php" method="post">
<h1><span class="log-in">با نام خود وارد شده </span> یا <span class="sign-up">عضو شوید</span></h1>
<p class="float">
<label for="login"><i class="icon-user"></i>نام کاربری</label>
<input type="text" name="log" id="log" value="<?php echo wp_specialchars(stripslashes($user_login), 1) ?>" size="20" />
</p>
<p class="float">
<label for="password"><i class="icon-lock"></i>رمز عبور</label>
<input type="password" name="pwd" id="pwd" size="20" />
</p>
<p class="clearfix">
<a href="#" class="log-twitter">ثبت نام</a>
<input type="submit" name="submit" value="ورود" class="button" />
</p>
</form>​​
<?php endif; ?>

</section><?php if (function_exists('dynamic_sidebar') && dynamic_sidebar('RightSide')) : else : ?>
لطفا از ابزارک برا گذاشتن منو استفاده کنید<?php endif; ?></div>

لینک به ارسال

شما وقتی دارید تست می کنید به وردپرس لاگین کرده هستید؟

لینک به ارسال

خیلی ممنون . درست شد :) . الان بعد از لاگ این کردن فرم مخفی میشه . فقط شرمنده ... یه سوال دیگه . من آخر نفهمیدم چطور میشه بعد از اینکه کاربر لاگین کرد ، یه کد خاص بهش نشون داده بشه ؟ مثلا دکمه خروج ؟

لینک به ارسال

خیلی ممنون . درست شد :) . الان بعد از لاگ این کردن فرم مخفی میشه . فقط شرمنده ... یه سوال دیگه . من آخر نفهمیدم چطور میشه بعد از اینکه کاربر لاگین کرد ، یه کد خاص بهش نشون داده بشه ؟ مثلا دکمه خروج ؟

بخش else


<?php if(!is_user_logged_in()) { ?>
فرم ورود
<?php
else
?>
خروج
<?php
}
?>


<?php if(is_user_logged_in()) { ?>
خروج
<?php
}
?>

لینک به ارسال

ببخشید .. الان من بخوام یه کد بذارم که نام کاربری هر نفر را نشون بده ، چی هست کدش ؟ یعنی اینکه مثلا : f.gh1372 گرامی , خوش آمدید . از کدی که در کامنت ها استفاده میشه ، استفاده کردم ولی جواب نداد

لینک به ارسال

ببخشید .. الان من بخوام یه کد بذارم که نام کاربری هر نفر را نشون بده ، چی هست کدش ؟ یعنی اینکه مثلا : f.gh1372 گرامی , خوش آمدید . از کدی که در کامنت ها استفاده میشه ، استفاده کردم ولی جواب نداد

لینک به ارسال

من از این کد برای وقتی که کاربر لاگین هست استفاده میکنه . ولی وقتی میخوام خارج بشم ... خارج میشه اما ارور 404 تو صفحه میاد و مثلا میگه برگه وجود ندارد ... چون عبارت (%2F ) آخر url میخوره .


<?php global $user_ID, $user_identity, $user_level ?>
<?php if ( $user_ID ) : ?>
<form class="form-2" action="<?php echo get_option('home'); ?>/wp-login.php" method="post">
<h1><span class="log-in">به مدرسه زیست شناسی </span> <span class="sign-up">خوش آمدید ! </span></h1>
<p class="float">
<label for="login"><i class="icon-user"></i><?php echo $user_identity ?> گرامی , لحاظ خوشی را برای شما آرزومندیم </label>
</p>
<p class="clearfix">
<a href="<?php echo wp_logout_url(urlencode($_SERVER['REQUEST_URI'])); ?>" class="log-twitter">خروج</a>
</p>

</form>​​
<?php endif // get_option('users_can_register') ?>

ویرایش شده توسط f.gh1372
لینک به ارسال

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

اما میتونید به صفحه اول راهنمایی کنید:

<?php echo wp_logout_url( home_url() ); ?>

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

 wp_logout_url( $_SERVER['REQUEST_URI'] );

لینک به ارسال

سلام

وقتی کاربر یوزر یا پس رو اشتباه بزنه ، پیغام خطا رو توی صفحه ی فایل wp-login نشون میده / الان بخوام اینطور نشه و یه پیغام همون جا نشون بده چکار کنم ؟ .... ممنون

لینک به ارسال

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

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

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

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

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

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

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

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

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