Взломы WordPress для веб-сайта только для членов
Опубликовано: 2020-05-19По умолчанию WordPress является инструментом для ведения блога. Тем не менее, вы действительно можете настроить его так, как хотите. Многие люди используют WordPress для создания веб-сайта только для членов.
Вы всегда можете использовать плагин, но если вам нужна лишь небольшая модификация, зачем устанавливать плагин, если вы можете сделать это с помощью нескольких строк кода. Вот несколько простых, но эффективных лайфхаков для создания сайта только для членов.
Контент только для членов без плагина
Если на вашем сайте есть определенный контент, который вы хотите показать только зарегистрированному участнику, вы можете сделать это, используя следующий код в своей теме. Все, что находится между is_user_logged_in
, будет видно только участникам.
[php]
<?php если ( is_user_logged_in() ) { ?>
// Контент для зарегистрированного пользователя
<?php } иначе {?>
// Контент для всех остальных
<?php }?>
[/php]
Показывайте форму входа в WordPress в любом месте и настраивайте ее
Если вы хотите включить форму входа в WordPress где-нибудь в своей теме, вы можете сделать это с помощью следующей функции:
[php]
<?php ks29so_login_form(); ?>
[/php]
Однако он не дает вам возможности настроить форму входа в систему, потому что он просто напрямую извлекает форму входа в WordPress по умолчанию. Что, если вы хотите показать что-то подобное?
Вот код для этого. Вставьте следующий код туда, где вы хотите, чтобы форма отображалась.
[php]
// Форма входа в WordPress
<?php if (!(current_user_can('level_0′))){ ?>
<h3>Вход в систему</h3>
<form action="<?php echo get_option('home'); ?>/wp-login.php" method="post">
<table width='100%' cellpacing="0" cellpadding="0">
<tr>
<тд>
<label><?php _e('Имя пользователя') ?></label>
<input type="text" name="log" class="input" value="<?php echo attribute_escape(stripslashes($user_login)); ?>" />
</td>
<тд>
<метка><?php _e('Пароль') ?></метка>
<input type="password" name="pwd" class="input" value="" />
</td>
</tr>
<tr>
<td colspan="2"><?php do_action('login_form'); ?>
</td>
</tr>
<tr>
<тд>
<a href="<?php echo site_url('wp-login.php?action=lostpassword', 'login') ?>" title="<?php _e('Пароль потерян и найден') ?>">< ?php _e('Забыли пароль?') ?></a>
</td>
<тд>
<input type="submit" name="submit" value="Log In" class="button" />
<input type="hidden" name="redirect_to" value="http://<?php echo $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] ?>" />
</td>
</tr>
</таблица>
</форма>
<?php } иначе { ?>
<!– Когда пользователь вошел в систему Показать следующую информацию –>
<h2>Выйти</h2>
<?php get_currentuserinfo();?>
С возвращением  <?php echo($current_user->user_login . " ");?><br />
<a href="<?php echo ks29so_logout_url(urlencode($_SERVER['REQUEST_URI'])); ?>">Выйти</a><br />
<a href="<?php echo get_admin_url(); ?>">Администратор?</a><!– Если вы являетесь администратором, перейдите на панель администратора –>
<?php }?>
[/php]
Вы можете добавить тег div CSS, чтобы стилизовать его. Преимущество использования этой формы входа в систему заключается в том, что вы можете практически создать мини-панель для участников с помощью функции get_currentuserinfo() и показать любую информацию о пользователе.
Пользовательское меню WordPress для участников
Как и контент, вы можете создать собственное меню WordPress для участников. Давайте сначала зарегистрируем меню. Перейдите к файлу функций вашей темы (functions.php). Используйте следующий код для регистрации меню.
[php]
register_nav_menus(массив(
'primary' => __('Основная навигация', 'двадцать десять'),
'посетитель' => __('Навигация для посетителей', 'двадцатьдесять'),
'нижний колонтитул' => __('Нижний колонтитул', 'двадцатьдесять'),
));
[/php]
Теперь поместите следующий код туда, где вы хотите, чтобы ваше меню отображалось, скорее всего, в файле header.php.
[php]
<?php
если ( is_user_logged_in() ) {
ks29so_nav_menu(массив('container_class' => 'заголовок меню', 'theme_location' => 'основной'));
} еще {
ks29so_nav_menu(array('container_class' => 'menu-header', 'theme_location' => 'посетитель'));
};?>
[/php]
Теперь вам нужно фактически создать меню в WordPress. Параметр «Меню» должен находиться на вкладке «Внешний вид». Создайте меню с названием основное и посетительское. В обоих меню добавьте все, что хотите показать. Например: если вы хотите, чтобы страница отображалась только при входе пользователя в систему, добавьте ее в главное меню.
Вы также можете создать динамическое меню нижнего колонтитула, используя тот же метод.
Пользовательские поля WordPress и хаки для блоггеров
Вы можете использовать WordPress для создания индивидуального и профессионально выглядящего веб-сайта. В этом посте мы поделимся некоторыми трюками и хаками с пользовательскими полями WordPress, которые позволят вам улучшить сайт на базе WordPress.
Иногда могут быть гостевые блоггеры, которые пишут только один пост на вашем сайте и все. Вы можете использовать этот метод для отображения обычной информации об авторе. Имейте в виду, что автор зарегистрирован в WordPress. Возможно, вы не хотите регистрироваться каждый раз, когда пишут новые приглашенные авторы. Но как сделать так, чтобы информация о гостевом авторе отображалась в том же формате, что и обычный автор? Настраиваемые поля!
Имя приглашенного автора на главной странице и в отдельных сообщениях
Первое, что нам нужно сделать, это установить оператор WordPress if, чтобы получить значение настраиваемого поля. Таким образом, он будет отображаться только при назначении пользовательского значения файла. Откройте ваши «index.php» и «single.php» и вставьте следующий код туда, где вы хотите, чтобы отображалось имя автора. Это может быть после даты или после комментариев. Например, после этого кода:
[php]
<?php the_time('M j, Y') ?>
[/php]
[php]
< ?php if ( get_post_meta($post->ID, 'guest_author_name', true)) { ?>
// проверяем, существует ли имя гостевого автора настраиваемого поля
< ?php echo get_post_meta($post->ID, "guest_author_name", $single = true); ?>
< ?php } ?>\
[/php]
После того, как мы поместили оператор if, мы просто вызываем его для любого сообщения, которое мы хотим, чтобы отображалось имя приглашенного автора. Имя приглашенного автора должно отображаться на главной странице и только для определенного сообщения.

Блок информации о гостевом авторе в отдельном сообщении
Итак, у нас есть имя, отображаемое в мета-описании поста, но некоторая информация о приглашенном авторе также была бы неплохой.
Опять же, сначала у нас есть условный оператор if, который ищет миниатюру изображения автора и описание. Не забудьте изменить изображение каталога. Также к блоку и тумбе мы прикрепили класс, который позволяет стилизовать как изображение, так и блок с помощью CSS.
[php]
<?php if (get_post_meta($post->ID, 'autho_thumb', true)) { ?> // проверяет, существует ли пользовательское поле
<div class="writer_bio">
<img class="autho_thumb" src="http://media.webdesignviews.com/author/<?php $values = get_post_custom_values("auto_thumb"); echo $values[0]; ?>" alt="Author Thumb " width="60" width="60" height="60" /><?php } ?
<?php if ( get_post_meta($post->ID, 'guest_author', true)) { ?>
<?php echo get_post_meta($post->ID, "guest_author", $single = true); ?></дел>
<?php } ?>
[/php]
Вот CSS, который я использовал
[CSS]
.writer_bio {
цвет: #666;
фон: #еее;
преобразование текста: нет !важно;
размер шрифта: 13px;
вес шрифта: нормальный;
высота: 75 пикселей;
ширина: 600 пикселей;
отступ: 6px;
отступ снизу: 6px;
отступ слева: 0;
нижняя граница: 10px;
}
.writer_bio изображение {
заполнение: 0 !важно;
поплавок: слева !важно;
поле слева: 4px !важно;
поле сверху: 3px !важно;
граница: 2px #ccc сплошная !важно;
высота: 60 пикселей;
}
[/css]
С классом autho_thumb вы даже больше стилизуете. Как только это будет сделано, все, что вам нужно сделать, это добавить autho_thumb и guest_author в поле и заполнить информацию. Вы даже можете добавить HTML, например, ссылку в настраиваемое поле.
Итак, у вас есть два настраиваемых поля для информации о приглашенном авторе. Может показаться, что это много шагов. Поверьте мне, как только вы это сделаете, это просто вопрос добавления изображения и описания в следующий раз, когда вы захотите это сделать.
Лучшее настраиваемое поле для отображения изображения сообщения на главной странице
Этот метод используется для отображения большого пальца для сообщения на переднем плане. Я хотел пойти немного дальше и упростить интерфейс для пользователя. Кроме того, с методом Жана все изображения будут иметь один и тот же alt=”post-image” и я могу не подойти для поисковых систем. Кроме того, вам придется каждый раз указывать полный URL-адрес для изображений. Во-первых, вот код:
[php]
<?php $postimageurl = get_post_meta($post->ID, 'post-img', true);
// переменная для изображения
$image_alt = get_post_meta($post->ID, 'post-img', true);// переменная для описания
// проверяем, вызывается ли пользовательское поле
если ($ postimageurl) {
?>
<a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php echo $postimageurl; ?>" class=
quot;post-img" alt="<?php echo $image_alt; ?>"; ширина="500" высота="300" /></a>
<?php } иначе { ?>
[/php]
Прежде чем я объясню код, обратите внимание, что я не добавил оператор else для большого пальца по умолчанию. Посмотрите сообщение Жана, если вы хотите иметь изображение по умолчанию, если оно назначено в пользовательском поле.
Сначала у нас есть две переменные $postimageurl и $image_alt. Первый — получить местоположение изображения, а второй — добавить имя изображения. Затем снова мы устанавливаем оператор if, чтобы проверить, вызывается ли пользовательское поле.
[php]
<?php echo get_option('siteurl').'/wp-content/uploads/thumb/'?>
[/php]
Другое дело — вышеприведенный код, который получает местоположение изображения. Я создал папку с именем thumb в своем каталоге загрузки WordPress, поэтому вместо того, чтобы каждый раз вводить полный URL-адрес, я просто вводил имя изображения после загрузки изображения в папку.
Если вам нужен другой каталог, например, вы будете хранить свои изображения в корне вашего домена, просто замените <?php echo get_option('siteurl').'/wp-content/uploads/thumb/ ?><?php echo $postimageurl; ?>
<?php echo get_option('siteurl').'/wp-content/uploads/thumb/ ?><?php echo $postimageurl; ?>
с http://yourwebsite.com/images/<?php echo $postimageurl; ?>
http://yourwebsite.com/images/<?php echo $postimageurl; ?>
.
Итак, код немного изменен, поэтому каждое изображение сообщения будет иметь другой alt (заголовок), и вы должны будете ввести расширение имени изображения, а не полный URL-адрес.
Организуйте навигацию WordPress, как хотите
Первое, что нужно знать, это страницы списка WordPress, использующие тег ks29so_list_pages, который обычно находится в header.php. но вы можете не захотеть перечислять все свои страницы. Если вы хотите скрыть некоторые из ваших страниц от отображения, вы должны сделать это:
[php]
<?php ks29so_list_pages('include=7,13' ); ?>
//или
<?php ks29so_list_pages('exclude=5,9');? >
[/php]
Исключить или включить работает почти так же. Exclude исключит определенные страницы из списка страниц WordPress и включит отображение только указанных вами идентификаторов страниц. Тем не менее, большинство блогов веб-дизайна или любых других блогов любят использовать теги или категории в качестве навигации. В этом случае вы можете просто избавиться от тега ks29so_list и настроить код навигации. Кроме того, вы можете сделать это и со своими тегами. Преимущество такого кодирования в том, что вы можете назначить класс CSS для стиля каждого элемента навигации.
Недавно мне пришлось найти идентификатор страницы для исключения в шаблоне, который я использовал, и примерно через 10 минут, наконец, нашел простой способ найти идентификатор страницы «страницы» WordPress.
Я считаю, что в старых версиях WordPress это было проще, но вот как вы можете это сделать сейчас.
- Войдите в панель администратора WordPress, затем перейдите в Страницы.
- Затем наведите указатель мыши на страницу, идентификатор которой вы хотите узнать.
- Вы увидите идентификатор в строке состояния в нижней части браузера (см. ниже).
Если вы не видите полный адрес, попробуйте другой способ (далее ниже).
- Войдите в панель администратора WordPress, затем перейдите в Страницы.
- Затем вы увидите идентификатор в адресной строке. Это будет число после знака равенства.
- Нажмите на страницу, идентификатор которой вы хотите узнать.
Отображение темы архива
Большинство тем WordPress поставляется со страницей archive.php. Но я видел много веб-сайтов, где страницы архива не очень полезны и не сообщают пользователям, какую тему или категории они просматривают. Вы можете добавить следующие коды в свой archive.php, чтобы избежать путаницы.
[php]
<?php /* Если это архив категорий */ if (is_category()) { ?>
<h3 class="pagetitle">Текущая тема просмотра: ‘<?php single_cat_title(); ?>’</h3>
<?php /* Если это архив тегов */ } elseif( is_tag() ) { ?>
<h3 class="pagetitle">Сообщения с тегами ‘<?php single_tag_title(); ?>’</h3>
[/php]