انجمن


آموزش جامع» ایجاد محدودیت و مخفی نمودن مطالب از غیر اعض  (۱۳ نوشته)

  • ثاني عشر

    آفلاین
    عضو
    تعداد نوشته‌ها: ۱۴۲
    تشکر شده: ۷۱ بار
    # نوشته شده: ۱۲ سال پیش
    ۳ بهمن ۱۳۹۰ - ۰۸:۱۱

    سلام؛ با توجه به درخواستهای متعدد و افزونه و کدهای مختلفی که برای «پنهان كردن لينك دانلود / عكس / ادامه مطلب / قسمت خاصي از مطلب و ... از دید مهمان ها و افراد غیر عضو» وجود داشت؛ به نظرم رسید که این تاپیک لازم باشه؛ لذا دست به کار شدم و نتیجه ی چند ساعت تلاش رو ناقابل خدمتتون ارائه میکنم:
    در این تاپیک از مطالب دوستانی که در انجمن فعالیت دارن (مخصوصا آقا نوید و جناب پارسا) و وردپرس انگلیسی و دیگر سایتها بهره بردم؛ تمام این روشها رو خودم امتحان کردم و تا حد ممکن سعی کردم که توضیحات هر کدوم رو بر اساس تجربه م بطور کامل بیان کنم. امیدوارم مفید باشه و کاربران مبتدی رو از سردرگمی در بیاره.
    تذکر: شماره ی روشها به معنی بهتر بودن اونها نیست. بسته به نیازتون از اونها استفاده کنین.
    ------------
    روش اول: الزامي نمودن ورود به سايت، جهت مشاهده ي همه مطالب با (login to view all)

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

    <!--loginview start--> تست <!--loginview end-->
    یا
    [loginview] تست [/loginview]
    با این تفاوت که: اگه متنتون رو بین کد اول قرار بدید, بعد از غیر فعال شدن افزونه, کدها نمایش داده نمیشن؛ ولی اگه بین کد دوم قرار بدید, تا افزونه غیر فعال بشه, علاوه بر متن مخفی, کدهاش هم به کاربر نشون داده میشه, یعنی سایتتون به این شکل دیده میشه: [loginview] لینک دانلود مثلا [/loginview]؛ پس بهتره از کد اول استفاده کنین.
    یکی از مزایای این افزونه اینه که: بعد از فعال شدن, یک دکمه به نام loginview به ویرایشگر شما اضافه میکنه و فقط کافیه شما متن مورد نظرتون رو سلکت کنید و اون کلید رو فشار بدید تا کد اولی رو اضافه کنه.
    دانلود افزونه login to view all
    http://wordpress.org/extend/plugins/login-to-view-all

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Parsa - Morteza - NESTED - bornadl
  • ثاني عشر

    آفلاین
    عضو
    تعداد نوشته‌ها: ۱۴۲
    تشکر شده: ۷۱ بار
    # نوشته شده: ۱۲ سال پیش
    ۳ بهمن ۱۳۹۰ - ۰۸:۲۸

    روش دوم: اختصاص يك متن به كاربران وارد شده يا نشده با (Alex Is User Logged In)

    این افزونه هم مثل قبلیه, با این فرق که شما میتونید بعضی از متنها رو از غیر اعضا و برخی رو حتی از اعضای وارد شده, مخفی نگه دارین؛ البته مدیران به همه مطالب دسترسی خواهند داشت.
    اگه بخواین افراد غیر عضو متنی رو نبینن, متنتون رو بین این کد قرار بدید
    [user_is_logged_in] تست [/user_is_logged_in]
    و اگه بخواین افراد عضو متنی رو نبینن, متنتون رو بین این کد قرار بدید
    [user_is_not_logged_in] تست [/user_is_not_logged_in]
    البته بازهم, به محض اینکه افزونه, غیر فعال یا حذف شود, متن مخفی با کدهای قبل و بعدش به کاربر نشون داده میشه.
    با ما همراه باشید (-;

    http://wordpress.org/extend/plugins/is-user-logged-in

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Parsa - Morteza - NESTED - forklift
  • ثاني عشر

    آفلاین
    عضو
    تعداد نوشته‌ها: ۱۴۲
    تشکر شده: ۷۱ بار
    # نوشته شده: ۱۲ سال پیش
    ۳ بهمن ۱۳۹۰ - ۰۸:۵۲

    روش سوم: مخفي كردن محتويات يك پست با (hidepost)

    اگه میخواین بین اعضای سایتتون هم تبعیض قایل بشین, از این افزونه استفاده کنین, چون با این افزونه میتونید براحتی مشخص کنین که یک مطلب رو چه کسانی بتونن ببینن؛ فقط مدیران؟ ویرایشگران؟ نویسندگان؟ شرکت کننده ها؟ یا نه, حتی افراد مشترک سرباز صفر هم دلشون نشکنه :-)
    در ابتدا بگم که این افزونه هم اگه غیر فعال بشه, کدها میزنه بیرون! و در متن شما نمایان میشه!
    اصل کدی که باید متن مخفی تون رو بین اون قرار بدید, اینه:
    [hidepost] تست [/hidepost]
    اما شما بسته به نیازتون میتونید از 1 تا 9 شماره بهش بدید مثل:

    [hidepost=1] تست [/hidepost]
    [hidepost=9] تست [/hidepost]

    میزان دسترسی هر کدوم از نقشهای سایت (اگه عدد نداشته باشه, همه اعضا دسترسی دارن):

    مدیر: به همه مطالب دسترسی دارد
    ویرایشگر: به مطالبی که با عدد 1 و 2 و 3 و 4 و 5 و 6 و 7 مخفی شده, دسترسی دارد
    نویسنده: به مطالبی که با عدد 1 و 2 مخفی شده, دسترسی دارد
    مشارکت کننده: به مطالبی که با عدد 1 مخفی شده, دسترسی دارد
    مشترک: فقط به مطالبی که بدون عدد مخفی شده, دسترسی دارد

    http://wordpress.org/extend/plugins/hidepost

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Morteza - Parsa - NESTED - reza - bornadl
  • ثاني عشر

    آفلاین
    عضو
    تعداد نوشته‌ها: ۱۴۲
    تشکر شده: ۷۱ بار
    # نوشته شده: ۱۲ سال پیش
    ۳ بهمن ۱۳۹۰ - ۰۹:۳۹

    روش چهارم، پنجم و ششم: جلوگيري از ورود غير اعضا به سايت

    تنها ثبت نام شده گان بتونن از سایت استفاده کنن با (Registered Only)
    این افزونه, به محض اینکه فعال بشه, افرادی که عضو نیستن, نمیتونن وارد صفحات سایت بشن؛ ولی با توجه به اینکه یه مقدار گیر داره و امکاناتش هم محدودتره, من افزونه بعدی رو ترجیح میدم
    http://wordpress.org/extend/plugins/registered-only

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

    تنها کاربران وارد سایت بشنوند با (Members Only)
    این افزونه هم باعث جلوگیری از ورود غیر اعضا میشه؛ به این صورت که بعد از فعال شدن و زدن اولین تیک در بخش تنظیمات, اگه کاربری عضو نشده باشه, به صفحه ی لاگین منتقل میشه و از هیچ کدوم از صفحات سایت نمیتونه استفاده کنه
    http://wordpress.org/extend/plugins/members-only

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

    وردپرسی ویژه ی کاربران عضو شده با (wp Members)
    این هم مثل قبلی؛ با تنظیماتی بیشتر
    http://wordpress.org/extend/plugins/wp-members/
    http://butlerblog.com/wp-members

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Parsa - Morteza - NESTED - mortezafox
  • ثاني عشر

    آفلاین
    عضو
    تعداد نوشته‌ها: ۱۴۲
    تشکر شده: ۷۱ بار
    # نوشته شده: ۱۲ سال پیش
    ۳ بهمن ۱۳۹۰ - ۱۰:۰۴

    روش هفتم: مجوز ویرایش/ خواندن برای کاربران عضو با (User Permissions)

    این افزونه بسیار افزونه ی خوب و ساده ایه؛ چون نیازی به کد نویسی بین متن ندارین بلکه بعد از نصب افزونه, در پایین هر پست و برگه, دو ستون پنج تایی تیک وجود داره که به وسیله ی اونها میتونید خواندن / نوشتن (Read and Write) اون پست رو منحصر به (مدیر, ویرایشگر, نویسنده, شرکت کننده و یا مشترک) نمایید.
    و همچنین میتونید مشخص کنید که هر آی پی, چند مرتبه بتونه این صفحه رو مشاهده کنه.

    ولی فقط یه مشکل داره و اون اینکه کار نمیکنه :-) !! یعنی وقتی تیکها رو میزنی و سیو میکنی, تیکها برداشته میشن!! توی نظرات سایتش هم بیشتریا نوشتن که برای ما کار نکرد؛ حالا اگه کسی باهاش کار کرده و قلقش رو یاد داره, بیان کنه. ممنون
    http://urbangiraffe.com/plugins/user-permissions
    ------------
    البته بدون افزونه هم تا حدودی امکان داره, که انشاالله بعد از تست کردن اضافه شون میکنم

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Parsa - Morteza - NESTED - mortezafox
  • Mojtaba in96

    آفلاین
    عضو
    تعداد نوشته‌ها: ۳۲۵
    تشکر شده: ۱۳۰ بار
    # نوشته شده: ۱۲ سال پیش
    ۲۳ اسفند ۱۳۹۰ - ۱۸:۵۵

    سلام
    ولی متاسفانه واسه من هیچکدوم ازا ین افزونه ها کار نکرد .....:(

    تازه من از زمینه دلخواه هم استفاده کردم

    میخوام بعضی از پست ها زمینه دلخواه هم که به شک ل لینک دانلود گذاشتم فقط واسه اعضا باشه :(

  • ثاني عشر

    آفلاین
    عضو
    تعداد نوشته‌ها: ۱۴۲
    تشکر شده: ۷۱ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۱ فروردین ۱۳۹۱ - ۱۸:۲۳

    روش هشتم: بلوكه كردن بخشي از متن با Spoiler Block

    امروز داخل هميار وردپرس مطلبي ديدم كه آقاي حميدرضا مؤمني، ارسال كرده بود؛ به نظرم رسيد منعكس كردنش توي اين تاپيك، بي‌ربط و خالي از فايده نباشه:
    بعضي وقتا آدم نمي‌خواد مطلب از ديد غير اعضا مخفي باشه؛ بلكه فقط مي‌خواد قسمتي از متن در برخورد اوليه ديده نشه و كاربر با فشردن يك دكمه بتونه كل متن رو ببينه. اين كار باعث ميشه متن شما خيلي طولاني نشه و كاربر هر قسمت رو كه لازم داره باز كنه و بخونه. براي اينكار از افزونه Spoiler Block استفاده كنيد، يكي از خوبي‌هاي اين افزونه اينه كه: وقتي غير فعال بشه، از خودش كدي جا نمي‌ذاره؛ البته كدها هستند ولي نمايش داده نمي‌شن.

    آموزش: (به نقل از همياروردپرس با كمي دست‌كاري)
    با نصب این افزونه، یک دکمه به ادیتور وردپرس اضافه مي‌شه؛ شما ابتدا متن مورد نظر رو انتخاب می‌کنید سپس روی دکمه Spoiler که به رنگ قرمز در ادیتور هستش کلیک می‌کنید؛ متن انتخاب شده، حالت مخفی می‌گیره یعنی زمینه‌ش قرمز میشه. حالا هنگامی که پست رو ارسال می‌کنید یک باکس در پست ارسال شده، ایجاد میشه که با کلیک کردن روی این باکس متن مخفي ظاهر میشه.
    در ضمن توي قسمت تنظیمات افزونه، می‌تونید نوشته‌ي پیش فرض باکس رو تغییر بدید.

    به نظر من رنگ باكس، زيادي قرمزه و توي چشم ميزنه؛ اگه نظر شما هم همينه، توي پوشه plugins به اين آدرس بريد و رنگ background رو عوض كنيد [spoiler-block\css\style.css]. من روي FF9999 گذاشتم.
    http://wordpress.org/extend/plugins/spoiler-block

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Parsa - Mojtaba in96
  • Mojtaba in96

    آفلاین
    عضو
    تعداد نوشته‌ها: ۳۲۵
    تشکر شده: ۱۳۰ بار
    # نوشته شده: ۱۱ سال پیش
    ۲۸ خرداد ۱۳۹۱ - ۱۵:۱۸

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

    <?php if(get_post_meta($post->ID, "vip", true)) { ?>
        <?php if(is_user_logged_in()) { ?>
    <!--------------------------------- in poste -------------------->
    <?php the_content(' '); ?>
    <!--------------------------------- in poste ----------------------->
    
        <?php } else { ?>
    
    <!----------------------------- user ------------------------------>
    متنی که میخواین به کاربران غیر عضو نمایش بدین
    <!----------------------------- user ------------------------------>
    
        <?php } ?>
    <?php } else { ?>
    
    <!--------------------------------- in poste ---------------------->
    <?php the_content(' '); ?>
    <!--------------------------------- in poste --------------------->
    
    <?php } ?>

    کافیه زمینه دلخواه vip و مقدارش 1 وارد کنین ;-)

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    ثاني عشر
  • ثاني عشر

    آفلاین
    عضو
    تعداد نوشته‌ها: ۱۴۲
    تشکر شده: ۷۱ بار
    # نوشته شده: ۱۱ سال پیش
    ۱۳ تیر ۱۳۹۱ - ۱۰:۱۵

    روش نهم: گذاشتن یک حفاظ برای تمام نوشته‌ها

    سايت روي خط وردپرس هم روشي رو با استفاده از كد بيان كرده بود، تستش كردم، خيلي خوب جواب داد، لذا خوبه كه اينجا منتقلش كنم.
    تنها کاری که شما باید انجام بدین اضافه‌کردن اين کد، به فایل تابع پوسته (functions.php) هستش.

    function protect_whole_site() {
        if ( !is_user_logged_in() ) {
            auth_redirect();
        }
    }
    
    add_action ('template_redirect', 'protect_whole_site');

    موفق باشيد

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    arsh
  • arsh

    آفلاین
    عضو
    تعداد نوشته‌ها: ۳
    # نوشته شده: ۹ سال پیش
    ۲۸ تیر ۱۳۹۳ - ۰۴:۵۳

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

    function my_page_template_redirect()
    {
        if( is_page( 'tags' ) && ! is_user_logged_in() )
        {
            auth_redirect();
            exit();
        }
    }
    add_action( 'template_redirect', 'my_page_template_redirect' );

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

  • bornadl

    آفلاین
    عضو
    تعداد نوشته‌ها: ۱۰۲
    تشکر شده: ۲۸ بار
    # نوشته شده: ۹ سال پیش
    ۲۸ تیر ۱۳۹۳ - ۱۲:۵۲

    آقا دستت دردن نکنه. خیلی کامله.

  • mahboubgraphic

    آفلاین
    عضو
    تعداد نوشته‌ها: ۱
    تشکر شده: ۱ بار
    # نوشته شده: ۹ سال پیش
    ۲۸ آذر ۱۳۹۳ - ۰۰:۵۹

    با سلام خدمت اساتید محترم

    ببخشید من یه سوال داشتم

    این مطلب رو هم خوندم همه چی بود جز اونی که من میخوام

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

    lمثلا یه باکسی طراحی کردم فقط میخوام تو صفحه اول نمایش داده بشه مثلا دیتالایف اینطوری میزاشتم

    این مربوط میشه در صفحه اصلی نشان بده
    [aviable=main] باکس طراحی شده[/aviable]

    یا اینطور مثلا میزاشتم در صفحه اصلی نشان بده
    [not-aviable/]باکس طراحی شده [not-aviable=main]

    چطور میتونم این کار رو انجام بدم شدیدن نیاز دارم

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    آموزش وردپرس
  • آموزش وردپرس

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۸۳۹
    تشکر شده: ۱۷۶۷ بار
    # نوشته شده: ۹ سال پیش
    ۲۸ آذر ۱۳۹۳ - ۰۸:۱۹

    mahboubgraphic گفت:
    با سلام خدمت اساتید محترم

    ببخشید من یه سوال داشتم

    این مطلب رو هم خوندم همه چی بود جز اونی که من میخوام

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

    lمثلا یه باکسی طراحی کردم فقط میخوام تو صفحه اول نمایش داده بشه مثلا دیتالایف اینطوری میزاشتم

    این مربوط میشه در صفحه اصلی نشان بده
    [aviable=main] باکس طراحی شده[/aviable]

    یا اینطور مثلا میزاشتم در صفحه اصلی نشان بده
    [not-aviable/]باکس طراحی شده [not-aviable=main]

    چطور میتونم این کار رو انجام بدم شدیدن نیاز دارم

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

    در ضمن این مورد رو میشه با افزونه advanced vip که نویسنده اون آقای وحید محمدی هست داشته باشید تو گوگل تحقیق کنید با تشکر
    ارادتمند : مسلم فلاح نیت

درباره‌ی این موضوع