Ali-Ahmari

نمایش مطالب برای اعضا

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

سلام

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

میشه یک راهنمایی کنید که چطوری باید اینکارو در وردپرس ایجاد کنم؟!

مثلا کاربر بر روی ادامه مطلب کلیک بگه این مطلب برای اعضا هست و برای دیدن وارد شوید و یا عضو شوید

0

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


لینک به پست

در functions.php قرار دهید :


<?php add_shortcode( 'member', 'member_check_shortcode' );

function member_check_shortcode( $atts, $content = null ) {
if ( is_user_logged_in() && !is_null( $content ) && !is_feed() )
return $content;
return '';
} ?>

در حین نوشتن مطلب هم :


[member]
قسمتی از پست که میخواهید فقط برای اعضا نمایش داده بشه
[/member]

7

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


لینک به پست

برای چیزی که خواستید اینکار را هم می شه کرد

1. به header.php این شرط را اضافه نمایید :


<?php if(is_single() and !is_user_logged_in()) {
wp_redirect(get_bloginfo('url').'/login?re='.get_permalink( ));
}?>

2. از صفحه page.php قالبتون یک کپی بگیرید اسمش رو بگذارید login.php و به ابتداش اضافه کنید


<?php
/*
* Template Name: Login Page
*/
if(isset($_GET['re'])) {
$re =$_GET['re'];
}
else {
$re = get_bloginfo('url');
}
?>

3. در همون صفحه بگردید دنبال تابع


wp-content();

زیر تابع اضافه کنید


<h4 class="alert">برای مشاهده ی مطلب مورد نظر لازم است وارد حساب کاربری خود شوید </h4>
<?php wp_login_form($re);?>
<h5> و یا <a href="<?php echo wp_registration_url(); ?>" title="Register">ثبت نام </a> نمایید </h5>

4. وارد پیشخوان برگه ها و افزودن برگه بشید یک برگه با قالب Login Page بسازید و نام یا نامکش را بگذارید login

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

6

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


لینک به پست

برای چیزی که خواستید اینکار را هم می شه کرد

1. به header.php این شرط را اضافه نمایید :


<?php if(is_single() and !is_user_logged_in()) {
wp_redirect(get_bloginfo('url').'/login?re='.get_permalink( ));
}?>

2. از صفحه page.php قالبتون یک کپی بگیرید اسمش رو بگذارید login.php و به ابتداش اضافه کنید


<?php
/*
* Template Name: Login Page
*/
if(isset($_GET['re'])) {
$re =$_GET['re'];
}
else {
$re = get_bloginfo('url');
}
?>

3. در همون صفحه بگردید دنبال تابع


wp-content();

زیر تابع اضافه کنید


<h4 class="alert">برای مشاهده ی مطلب مورد نظر لازم است وارد حساب کاربری خود شوید </h4>
<?php wp_login_form($re);?>
<h5> و یا <a href="<?php echo wp_registration_url(); ?>" title="Register">ثبت نام </a> نمایید </h5>

4. وارد پیشخوان برگه ها و افزودن برگه بشید یک برگه با قالب Login Page بسازید و نام یا نامکش را بگذارید login

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

ممنون جناب فخار :) ولی من میخوام برای بعضی از پست هام به این شکل باشه . . . با این کد هایی که شما دادید اگر اشتباه نکنم برای همه پست ها این شرط اجرا میشه .

اگر بشه مثلا برای دسته بندی خاصی یا... این شرط اجرا بشه خیلی عالی میشه

تشکر

0

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


لینک به پست

<p>بله می شه کدهای شرط را به این صورت گذاشت

<?php if(is_single() and category_in(5) and !is_user_logged_in()) {wp_redirect(get_bloginfo('url').'/login?re='.get_permalink( ));}?>

2

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


لینک به پست

ممنون

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

0

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


لینک به پست

کد را به اینصورت به ابتدای فایل single.php منتقل کنید


<?php if(category_in(5) and !is_user_logged_in()) {wp_redirect(get_bloginfo('url').'/login?re='.get_permalink( ));}
else {
?>

و در انتهای فایل هم اضافه کنید


<?php }?>

اگر نشون داد نشانی آنلاین بگذارید

3

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


لینک به پست

اینسری این ارور رو داد

روی هر پستی کلیک میکنم این ارور رو میده

Fatal error: Call to undefined function category_in() in /home/hazanir/domains/**.ir/public_html/wp-content/themes/my-b/single.php on line 2

ویرایش شده در توسط redpayam
0

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


لینک به پست

عذر می خوام تابع رو اشتباه نوشتم

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


<?php if(in_category(5) and !is_user_logged_in()) {wp_redirect(get_bloginfo('url').'/login?re='.get_permalink( ));}
else {
?>

و در انتهای صفحه هم


<?php }?>

4

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


لینک به پست

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

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

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

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


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

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

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


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