if ( isset( $_POST['r_register-submit'] )) {
add_action('register_form','reg_show_fields',10,1);
if(!function_exists('reg_show_fields')){function reg_show_fields(){
echo'<input name="user_sex" type="text" class="input" value=""/>';
}}
add_action('user_register','my_user_registration');
function my_user_registration( $user_id ) {
// $_POST['user_sex'] проверена заранее...
update_user_meta($user_id,'user_sex',$_POST['user_sex']);
}
add_action('show_user_profile','функция, в которой добавляем поля');
add_action('edit_user_profile','функция, в которой добавляем поля');
add_action('personal_options_update','функция обработчик');
add_action('edit_user_profile_update','функция обработчик');
.dashicons-microphone::before{font-size:15px;margin-top:7px;}
.static::analytical_papers.$permitted_chars.
и что оно возвращает при каждом нажатии копки «добавить пункт». одно известно точно. Находясь на странице и кликнув дважды на добавить у Вас все данные будут одинаковыми $permitted_chars
do_settings_sections
?...
<textarea cols="44" rows="1" placeholder="<?php esc_html_e('Сформулируйте вопрос','VAB');?>" name="theme_settings[VAB_Diagramm]['+keyq+'][question]" value=""required></textarea>
...
if(бла бла бла){
foreach(VABMoD('VAB_Diagramm') as $k=>$v){
...
<textarea cols="44" rows="1" placeholder="'.esc_html__('Сформулируйте вопрос','VAB').'" name="theme_settings[VAB_Diagramm]['.$k.'][question]" value="" required="">'.VABMoD('VAB_Diagramm')[$k]['question'].'</textarea>
...
}
wp_enqueue_script( 'jquery' );
. Он уже подключен по умолчанию, как Вы и написали сами же. Вы только лишний раз заставляете проверить подключен ли скрипт. Если не работает, то проблема в Вашем коде или совместимости с подключенной версией.jQuery(document).ready(function($){
const $window = $(window);
$window.on('scroll', onScroll);
function onScroll() {
if($window.scrollTop() >= $window.height()) {
document.querySelector(".home .site-header").classList.add("shadow");
} else {
document.querySelector(".home .site-header").classList.remove("shadow");
}
}
});/*Конец Ready*/
global $post;
А может существует возможность извлечь из WP_Comment класс WP_Post?
var_dump($mass)
в цикле. смотрите, вникайте, гуглите, разберитесь с функциями. вырисовывайте нужную Вам разметку. данные родительского комментария по сути тоже есть var_dump(get_comment($mass->comment_parent))
function my_post_comment_meta_box( $comment ) {
$total=get_comments(
array(
'post_id'=>$comment->comment_post_ID,
'order'=>'ASC',
)
);
?><ol class="commentlist"><?php
foreach($total as $mass){
// var_dump($mass);
echo'<br><br>';
if(!empty($mass->comment_parent)){echo'<ul>';
// var_dump(get_comment($mass->comment_parent));
$comment_parent=get_comment($mass->comment_parent);
$ParcomId=$comment_parent->comment_ID;
echo 'Ответ на комментарий автора комментария с ID = '.$ParcomId.', данные которого берем из var_dump(get_comment($mass->comment_parent)):';
}
?>
<li class="" id="li-comment-<?php echo $mass->comment_ID;?>">
<div id="comment-<?php echo $mass->comment_ID;?>">
<div class="comment-author vcard">
<div class="comment-meta commentmetadata" style="float:right;">
<div class="commentEdit"><?php echo '<a href="'.get_site_url().'/wp-admin/comment.php?action=editcomment&c='.$mass->comment_ID.'">'.esc_html__('Редактировать','VAB').'</a>';?></div>
</div><?php
if(count_user_posts($mass->user_id)>0){$Text='';if(!empty(get_author_posts_url($comment->user_id))){$Text=esc_html__('Архив автора','VAB').' / ';}$LinkSt='<a href="'.get_author_posts_url($comment->user_id).'">'.$Text;$LinkEnd='</a>';}else{$LinkSt='';$LinkEnd='';}
printf('%1$s '.esc_html__('в','VAB').' %2$s',get_comment_date("l, F jS, Y",$mass->comment_ID),get_comment_date("H:i:s",$mass->comment_ID));
printf(' <cite class="fn">'.$LinkSt.'%s'.$LinkEnd.'</cite><span class="says"> '.esc_html__('пишет','VAB').':</span>',get_comment_author_link($mass->comment_ID));
comment_text($mass->comment_ID);?></div>
</div><?php
if(!empty($mass->comment_parent))echo'</ul>';
}
?></ol><?php
}
php_value date.timezone 'Europe/Samara'
Часовой пояс PHP по умолчанию изменён после загрузки WordPress вызовом функции date_default_timezone_set(). Это может повлиять на корректный расчёт значений даты и времени.
Где именно вы хотите изменить время?
// Создаем письмо
$mail = $phpmailer;
$mail->isSMTP(); // Отправка через SMTP
...
30-90 писем. Хотя лимиты разумеется есть. А потому, что с каждым отправленным Вами письмом Вы будете терять авторитет домена, которого у Вас итак нету. Даже в документации яндекса написано (нет под рукой ссылки) не прямым текстом, но! создав корпоративную почту, её надо «прокачивать», если начнете массово сразу слать письма, через пару писем уже в бан залетите. и пока вы не авторизуетесь в браузере в этой почте и с нее не отправите письмо ручками, блокировка не будет снята (проверено). По мере пользования ситуация будет улучшаться. Почему Вы будете терять авторитетность почты с каждым отправленным письмом? Все просто. Отправьте письмо и посмотрите служебные заголовки письма. Там будет реальный отправитель: что-то похожее на webmaster@server171.hosting.reg.ru. Ну а теперь подумайте вы отправляете письма с домена info@site.ru (и на него настроены ресурсные записи), а реальный отправитель hosting.reg.ru. Сами теперь скажите будете терять авторитет домена? вся фишка в конфигурации сервера. если Мы ставим на винде свой сервак мы можем поставить программу sendmail под каждый домен на этом серваке и настроить аутентификацию в sendmail.ini. на линукс, например, ssmtp. Суть в том, что нужна аутентификация. Так вот на рег.ру единственный способ полноценно отправлять письма это плагин (недели две, в свое время, вел активно переписку по этому вопросу с ребятами рег ру и яндекса т.к. не было зеленого замка на яндексе и на финале ребята рег ру ответили - «Простите, но у Вас один вариант это плагин», а по началу вовсе мазались. мол это проблемы на яндексе...), который будет проходить аутентификацию на сервере и оттуда, в конечном результате, отправлять письмо. ну тот же phpMailer, к примеру. Одно точно - хотите, что-то серьезное для рассылок, да надо свой почтовый сервер(хотя бы на отправку) или сервисами пользоваться (по любому платно). Ну и разумеется базу подписчиков надо набирать, а не покупать. Ибо одно не открытое письмо получателем уже минус репутации, а если нажата кнопка спам и того веселее. У Вас никогда небыло так: приходят с каого-нибудь отправителя письма, а вы их не читая в корзину... и через время почтовая служба майл Вам задает вопрос: «Мы заметили вы не читаете рассылки с этого адреса. Хотите заблокировать отправителя (или отписать от рассылки - точно не помню)». У меня майл не раз так спрашивал. В целом в двух словах всех мелочей не объяснить. Даже один не ловкий пробел при создании формы наградит спам балами. Сам рассылками не занимался на 100% не скажу, но, если бы все было так печально, то разве существовали бы такие тяжелые плагины для рассылок у вордпресс?? Быть может проблема в том, что люди не все учитывают, потому и блок ловят. Ведь не смотря на то, что эти плагины есть, это не значит, что ты не должен понимать как все устроено!?
Надеюсь ясно выразился
а не подскажешь, как сделать тоже самое, но чтобы несколько полей?
function update_basic_user_meta(){
global $current_user;
$u_meta=get_user_meta($current_user->ID,'u_meta',true);
$u_meta=!empty($u_meta)?$u_meta:array();
if(!empty($_POST['first_name'])){$u_meta['first_name']=$_POST['first_name'];}
if(!empty($_POST['communication_email'])){$u_meta['communication_email']=$_POST['communication_email'];}
update_user_meta($current_user->ID,'u_meta',$u_meta);
$u_meta=get_user_meta($current_user->ID,'u_meta',true);
$first_name=!empty($u_meta['first_name'])?$u_meta['first_name']:'';
$communication_email=!empty($u_meta['communication_email'])?$u_meta['communication_email']:'';?>
<form action="" method="POST" class="">
<input type="text" id="first_name" name="first_name" class="" value="<?php echo $first_name; ?>">
<input type="text" id="communicationEmail" name="communication_email" class="" value="<?php echo $communication_email; ?>">
<button class="" type="submit">Сохранять</button>
</form><?php }
update_basic_user_meta();
кстати, после добавления значения в поле вашим методом его не возможно удалить
function update_basic_user_meta2(){
global $current_user;
$communication_meta=!empty($_POST['communication_email'])?$_POST['communication_email']:'';
if(!empty($communication_meta)){update_user_meta($current_user->ID,'communication_email',sanitize_text_field($communication_meta));}
if(empty($communication_meta)&&!empty($_POST['mysubmit'])){delete_user_meta($current_user->ID,'communication_email');}
$communication_email=get_user_meta($current_user->ID,'communication_email',true);?>
<form action="" method="POST" class="">
<input type="text" id="communicationEmail" name="communication_email" class="" value="<?php echo !empty($communication_email)?$communication_email:''; ?>">
<input class="" type="submit" name="mysubmit" value="Сохранять">
</form><?php }
update_basic_user_meta2();
Ох уж эта пагинация... Столько лет ищем, а она в бесплатной теме по дефолту лежит себе:и все ещё актуальна
<?php
/**
* Custom template tags for Twenty Fourteen
*
* @package WordPress
* @subpackage Twenty_Fourteen
* @since Twenty Fourteen 1.0
*/
if ( ! function_exists( 'twentyfourteen_paging_nav' ) ) :
/**
* Display navigation to next/previous set of posts when applicable.
*
* @since Twenty Fourteen 1.0
*
* @global WP_Query $wp_query WordPress Query object.
* @global WP_Rewrite $wp_rewrite WordPress Rewrite object.
*/
function twentyfourteen_paging_nav() {
global $wp_query, $wp_rewrite;
// Don't print empty markup if there's only one page.
if ( $wp_query->max_num_pages < 2 ) {
return;
}
$paged = get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1;
$pagenum_link = html_entity_decode( get_pagenum_link() );
$query_args = array();
$url_parts = explode( '?', $pagenum_link );
if ( isset( $url_parts[1] ) ) {
wp_parse_str( $url_parts[1], $query_args );
}
$pagenum_link = remove_query_arg( array_keys( $query_args ), $pagenum_link );
$pagenum_link = trailingslashit( $pagenum_link ) . '%_%';
$format = $wp_rewrite->using_index_permalinks() && ! strpos( $pagenum_link, 'index.php' ) ? 'index.php/' : '';
$format .= $wp_rewrite->using_permalinks() ? user_trailingslashit( $wp_rewrite->pagination_base . '/%#%', 'paged' ) : '?paged=%#%';
// Set up paginated links.
$links = paginate_links( array(
'base' => $pagenum_link,
'format' => $format,
'total' => $wp_query->max_num_pages,
'current' => $paged,
'mid_size' => 1,
'add_args' => array_map( 'urlencode', $query_args ),
'prev_text' => __( '← Previous', 'twentyfourteen' ),
'next_text' => __( 'Next →', 'twentyfourteen' ),
) );
if ( $links ) :
?>
<nav class="navigation paging-navigation" role="navigation">
<h1 class="screen-reader-text"><?php _e( 'Posts navigation', 'twentyfourteen' ); ?></h1>
<div class="pagination loop-pagination">
<?php echo $links; ?>
</div><!-- .pagination -->
</nav><!-- .navigation -->
<?php
endif;
}
endif;
get_post_meta($post->ID,'_wp_page_template',true);
$pg=get_pages(/*выборка*/);
foreach($pg as $post){
setup_postdata($post);
$meta_v=get_post_meta($post->ID,'_wp_page_template',true);//если meta_v пустой или default - значит дефолт, в остальном укажет шаблон
echo $post->ID.' - '.get_the_title().' - '.$post->post_type.' - '.$meta_v.'<br>';
}
wp_reset_postdata();