رفتن به مطلب
Ali-Ahmari

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

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

سلام

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

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

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

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


لینک به ارسال

در 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]

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


لینک به ارسال

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

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

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

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


لینک به ارسال

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

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

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

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

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

تشکر

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


لینک به ارسال

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

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

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


لینک به ارسال

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


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

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


<?php }?>

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

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


لینک به ارسال

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

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

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

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


لینک به ارسال

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

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


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

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


<?php }?>

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


لینک به ارسال

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

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

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

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

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

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

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

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


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