/**
* Вход пользователя
*/
function user_login() {
if($_POST) {
$login_data = array(
'user_login' => $_POST['username'],
'user_password' => $_POST['password'],
'remember' => true,
);
$user_verify = wp_signon( $login_data, false );
if ( is_wp_error($user_verify) ) {
return '<span class="mine">Invlaid Login Details</span>';
} else {
wp_redirect( home_url() );
exit();
}
}
}
/**
* Регистрация нового пользователя
*/
function new_user_registration() {
// Данные переданные в $_POST
$userdata = array(
'user_login' => $_POST['user_name'],
'user_pass' => $_POST['password'],
'user_email' => $_POST['mail'],
'first_name' => $_POST['full_name'],
);
/**
* Проверять/очищать передаваемые поля не обязательно,
* WP сделает это сам.
*/
$user_id = wp_insert_user( $userdata ) ;
if( ! is_wp_error( $user_id ) ) {
return true;
} else {
return $user_id->get_error_message();
}
}
<?php user_login(); ?>
<?php get_header('login'); ?>
<main class="page-login__main">
<div class="container page-login__container">
<form class="form form--post form-login" action="" method="POST">
<fieldset class="form__fieldset">
<legend class="form__legend form-login__legend">Вход</legend>
<label class="form__label form-login__label">
Логин
<input type="text" name="username" class="form__input" data-error="" placeholder="Alex" required>
</label>
<label class="form__label form-login__label">
Пароль
<input type="password" name="password" class="form__input" data-error="" placeholder="*****" required>
</label>
<p class="form-login__hint">Забыли пароль?
<a class="form-login__hint-link" href="<?php echo wp_lostpassword_url( ); ?>">Восстановить!</a>
</p>
<div class="form__footer form-login__footer">
<button class="form__button form-login__button" name="signup" type="submit">Вход</button>
<label class="form__check form__anti-spam">
<input class="form__check-input form__anti-spam-checkbox" type="checkbox" name="no-robot" required>
<span class="form__check-box"></span>
Я не робот
</label>
</div>
</fieldset>
</form>
</div>
</main>
<?php get_footer('login'); ?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<?php wp_head(); ?>
</head>
<body class="page-login">
<header class="header">
<div class="header__container container">
<div class="header__logo">
<div class="logo">
<a class="logo__link" href="<?php echo home_url(); ?>">
<img class="logo__image" src="<?php echo get_template_directory_uri(); ?>/assets/img/logo.svg" width="70" height="75">
</a>
</div>
</div>
<div class="header__breadcrumbs">
<nav class="breadcrumbs">
<?php
echo strip_tags(
wp_nav_menu([
'theme_location' => 'breadcrumbs_login_menu',
'container' => false,
'echo' => false,
'items_wrap' => '%3$s',
'depth' => 0,
]), '<a>' );
?>
</nav>
</div>
<div class="header__user">
<div class="user user--logged-out">
<a class="user__photo" href="<?php echo home_url(); ?>/profile">
<img class="user__photo-image" src="<?php echo get_template_directory_uri(); ?>/assets/img/user-photo.svg" width="37" height="37" alt="Фото пользователя">
</a>
<div class="user__logged user__logged--out">
<a class="user__login" href="<?php echo home_url(); ?>/login">Вход</a>
<a class="user__registration" href="<?php echo home_url(); ?>/registration">Регистрация</a>
</div>
<div class="user__logged user__logged--in">
<p class="user__name">John Fedor</p>
<p class="user__status">Пользователь</p>
<span class="user__button"></span>
</div>
<ul class="user__menu">
<li class="user__menu-item">
<a class="user__menu-link" href="<?php echo home_url(); ?>/profile">Настройки</a>
</li>
<li class="user__menu-item user__menu-item--status">
<img class="user__menu-icon user__menu-icon--status" src="<?php echo get_template_directory_uri(); ?>/assets/img/icon-settings.svg" alt="Статус">
<a class="user__menu-link" href="<?php echo home_url(); ?>/get-status">Получить статус</a>
</li>
<li class="user__menu-item user__menu-item--exit">
<a class="user__menu-link" href="<?php echo wp_logout_url( home_url() ); ?>">Выход</a>
<img class="user__menu-icon user__menu-icon--exit" src="<?php echo get_template_directory_uri(); ?>/assets/img/icon-exit.svg" alt="Выход">
</li>
</ul>
</div>
</div>
</div>
</header>
$user_verify = wp_signon( $login_data, false );
if ( is_wp_error($user_verify) )
if ( is_wp_error($user_verify) )
Бросьте это дело, честно.Дельное решение вопроса, однако)
get_posts
не работает, нужно менять WP_Query, я нашел тут сей код: <?php
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$args = array(
'post_type' => 'custom_post_type_name',
'posts_per_page' => 10,
'paged' => $paged
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
//CPT. content
endwhile;
?>
<nav class="pagination">
<?php
$big = 999999999;
echo paginate_links( array(
'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $loop->max_num_pages,
'prev_text' => '«',
'next_text' => '»'
) );
?>
</nav>
<?php wp_reset_postdata(); ?>
<?php
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$args = array(
'posts_per_page' => 6,
'order' => 'ASC',
'post_type' => 'my_type_post',
'paged' => $paged
);
$loop = new WP_Query( $args );
?>
<?php
if( $loop->have_posts() ) {
while( $loop->have_posts() ){
$loop->the_post();
?>
<h3><?php the_title(); ?></h3>
// My HTML
<?php
}
wp_reset_postdata();
}
?>
// И в нужно контейнере - месте размещаем nav.
<code lang="php">
<nav class="pagination">
<?php
$big = 999999999;
echo paginate_links( array(
'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $loop->max_num_pages,
'prev_text' => '«',
'next_text' => '»'
) );
?>
</nav>
</code>
<?php get_header('want') ?>
<main class="page-want__main">
<div class="container page-want__container">
<div class="projects">
<div class="projects__search">
<div class="projects__form">
<form class="form form-search" action="/" method="GET">
<label class="form__label form-search__label">
Поиск
<input type="search" class="form__input form-search__input" name="search" placeholder="Я ищу...">
<span class="form__filter form-search__filter">
<span class="form-search__filter-button">фильтр</span>
</span>
</label>
</form>
</div>
<a class="button projects__button" href="<?php echo home_url(); ?>/add-project">Добавить свой проект</a>
</div>
<div class="projects__items">
<div class="projects__items-list">
<?php
$posts = get_posts( array(
'numberposts' => 6,
'order' => 'ASC',
'post_type' => 'post-want',
) );
foreach( $posts as $post ){
setup_postdata($post);
?>
<a class="projects__item projects__item--mini" href="<?php the_permalink(); ?>">
<picture class="projects__item-image">
<?php the_post_thumbnail('post-project'); ?>
</picture>
<div class="projects__item-info">
<h5 class="projects__item-title"><?php the_title(); ?></h5>
<div class="projects__item-text">
<?php the_excerpt() ?>
</div>
</div>
</a>
<?php
}
wp_reset_postdata();
?>
</div>
</div>
<?php the_post_pagination(); ?>
</div>
</div>
</main>
<?php get_footer('want'); ?>
Я поставил плагин для социалок, лог/рег,лайки. Всё работает, и кастомный от Пиппина и плагин социалок, но при входе, реге через стандартую форму, логини, всё делает, но вылетает ошибка. Мучился, но потом "дорос" до
define( 'WP_DEBUG', true );
Кардинально меняют ситуацию :DВ итоге, как оказалось в туториале Пиппина, были устаревшие функции:
Я их поменял, переписал, и в блоге у него запостил, для других, так как его статья до сих пор актуальна, комменты от 2019 года есть.
Но осталась одна ошибка, я не знаю как её разобрать:
Я запостил на форуме плагина - https://wordpress.org/support/topic/conflict-with-...
Я перевожу и понимаю как: Неисправимая ошибка, и что мало аргументов, не хватает
У меня вызывается так:
do_action('wp_login', $_POST['user_name']);