Обмежте сторінки в WordPress, щоб вони вимагали входу

Екранний знімок 2013 07 01 на 12.23.52 PM

login_lock.jpgЦього тижня ми закінчували впровадження власної теми на клієнтському сайті, і вони попросили, щоб ми створили якусь взаємодію, де деякі сторінки були обмежені для зареєстрованих підписників. Спочатку ми думали про реалізацію сторонніх плагінів, але насправді рішення було досить простим.

По-перше, ми скопіювали шаблон сторінки в новий файл (будь-яка назва - це нормально, просто підтримуйте розширення php). Угорі сторінки обов’язково коментуйте сторінку, щоб побачити її в редакторі шаблонів за назвою:


Далі шукайте рядок у коді вашої сторінки, який відображає вміст. Це повинно виглядати так:


Тепер вам потрібно буде обернути деякий код навколо цього рядка:

Тільки для абонентів На жаль, вміст, який ви намагаєтесь отримати, обмежений лише для передплатників.

Код починається з перевірки сеансу, щоб перевірити, чи ввійшов користувач на ваш сайт WordPress. Якщо вони увійшли, вміст відображається. Якщо вони не авторизовані, повідомлення повідомляє, що ви намагаєтесь отримати доступ до вмісту з обмеженим доступом.

Для того, щоб використовувати сторінку, вам потрібно вибрати Лише передплатники шаблон сторінки в розширеному розділі параметрів вашої сторінки (на бічній панелі). Це обмежить сторінку читачам, які увійшли в систему.

Якщо ви хочете отримати справжню фантазію, ви також можете додати метод входу та виходу на свою бічну панель:

">Вийти /wp-login.php">Вхід клієнта

28 Коментарі

  1. 1
  2. 2
  3. 3
    • 4

      Привіт Парте,

      Це було б досить просто - ви можете додати ту саму техніку в заголовок сторінки і в основному сказати ... якщо (без ідентифікатора користувача І сторінка не дорівнює імені сторінки), тоді заголовок перейде на сторінку входу.

      Doug

  4. 5

    чудове елегантне рішення! саме те, що мені потрібно, я серйозно розглядав можливість створення зовнішньої системи входу.
    це скелі!

  5. 6
    • 7
      • 8

        Це не зручно для користувача, але це нормально ... Я відчуваю, що деякі фотографії того, що я повинен робити, допоможуть. Інакше ... я просто спробую речі, поки це не спрацює!

        • 9

          скопіюйте page.php, перейменуйте page2.php і вставте код вище, збережіть файл, завантажте назад у вміст / тему / як завгодно, перейдіть до публікації або змініть макет сторінки за замовчуванням на page2.php Не потрібно створювати новий стиль / макет сторінки, просто скопіюйте той, який ви використовуєте, і перейменуйте його. так fullwidth.php - це fullwidth2.php, що просто.

      • 10

        Гаразд, то після БАГАТО спроб та перегляду інших підручників в Інтернеті ... Я виявив, що СТВОРЕННЯ нового шаблону сторінки - це моє питання. Я роблю його в текстовому редакторі і намагаюся завантажити його… де? Навіть не знаю, куди йти. Здається, я не можу знайти це таємне місце для завантаження!

        • 11

          Так правда, ЛаРок! Вам потрібно мати програму FTP та доступ до папки тем веб-сайту, щоб ви могли туди завантажити файл. Наразі НЕМАЄ способу зробити це через адміністративний екран. Одним винятком було б встановлення плагіна «Менеджер файлів», який дозволяє створювати нові файли. Будьте обережні! 

  6. 12
  7. 13
  8. 14
  9. 15
    • 16

      Ви напевно можете просто перевірити, чи не ввійшов користувач в систему; однак метод, визначений вище, врешті-решт дозволить вам використовувати рівні дозволів, якщо ви хочете налаштувати рівні!

  10. 17
  11. 18
  12. 19

    Добре, отже, я кусаю ... Як би ви змінили це, щоб дозволити перевірку дозволів?

    Скажімо - ми все ще хочемо дозволити будь-кому створити власне ім’я користувача «Передплатник» та розміщувати відповіді.
    АЛЕ - ми надаємо доступ до сторінки "Лише передплатникам" лише тим користувачам, яких вказав адміністратор?

  13. 20
  14. 21

    Дуглас - я використав ваш код - і здебільшого він чудово працює! У мене проблема полягає в тому, що посилання «Вийти» повертається на сайт, який не існує. Я насправді пробував декілька кодів wordpress з усього Інтернету, щоб код виходу працював. . . але користувач як і раніше залишається авторизованим, а повернення //wp-login.php?redirect_to=COUNT>log%20in%20%20%20%20%20%20%20%20%20%20%20%20 % 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20

    Будь-які думки?

    • 22

      Схоже, просто так, коли код був скопійований з вашого браузера, він додав купу HTML-просторів, Райане. Скопіюйте код у Блокнот або Текстову панель, а потім скопіюйте його у свій шаблон, щоб позбутися цього.

  15. 23

    Гаразд, це саме те, що мені потрібно робити, але у мене є одне питання. Якщо вони не є передплатниками, як я можу зробити так, щоб з’явилося поле «ввійти» або «підписатися», щоб вони могли отримати доступ до вмісту?

    Дякую

  16. 25

    Дякую за код. змусить людей сердитися на мене, але вони, мабуть, входять у систему, коли хочуть, щоб щось не дозволило всім вільний доступ для полегшення пошуку файлів.

  17. 26

    Здається, цей метод підлягає викраденню сеансу. Файл cookie для входу буде доданий, перебуваючи в захищеній зоні, але оскільки wordpress використовує його як незахищений файл cookie, він все одно буде наданий, якщо користувач перегляне частину сайту, яка не зашифрована.

  18. 28

Що ви думаєте?

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.