RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Редирект с www на без www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
function fgb_fs_gallery_id_callback( $post, $meta ){
$screens = $meta['args'];
// Используем nonce для верификации
wp_nonce_field( plugin_basename(__FILE__), 'fgb_fsg_id_noncename' );
// Поля формы для введения данных
echo '<label for="fgb_fsg_id">' . __("Put gallery id", 'fgb' ) . '</label> ';
echo '<input type="text" id= "fgb_fsg_id" name="fgb_fsg_id" size="2" value="'. get_post_meta( $post->ID, '_fgb_fsg_id',true ) .'"/>';
}
// Сохраняем данные, когда пост сохраняется
add_action( 'save_post', 'fgb_fsg_id_save_postdata' );
function fgb_fsg_id_save_postdata( $post_id ) {
// Убедимся что поле установлено.
if ( ! isset( $_POST['fgb_fsg_id'] ) )
return;
// проверяем nonce нашей страницы, потому что save_post может быть вызван с другого места.
if ( ! wp_verify_nonce( $_POST['fgb_fsg_id_noncename'], plugin_basename(__FILE__) ) )
return;
// если это автосохранение ничего не делаем
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
return;
// проверяем права юзера
if( ! current_user_can( 'edit_post', $post_id ) )
return;
// Все ОК. Теперь, нужно найти и сохранить данные
// Очищаем значение поля input.
$my_data = sanitize_text_field( $_POST['fgb_fsg_id'] );
// Обновляем данные в базе данных.
update_post_meta( $post_id, '_fgb_fsg_id', $my_data );
}
var data = new Object();
// Допустим данные формы такие
data.user = {
name: "Имя" // сюда ваша переменная;
// Другие данные
};
data.orderlist= {
// данные orderlist
}
// Далее data вы превращаете в JSON строку
data = JSON.stringify(data);
// JSON строку вы передаёте в ajax
$.ajax({
url: opts.handler,
type: 'POST',
dataType: 'json',
data: data
/* И так далее */
function react_enquip_script(){
// Регистрируете скрипты в WP
}
add_action('react_enquip_script', 'react_enquip_script');
add_shortcode('component_chat', 'component_chat');
function component_chat(){
do_action('react_enquip_script');
// Прочий код, в том числе подключение компонента
}
$query = new WP_Query(
array(
'post_type'=>'page',
'post__in' => array(1, 2, 3, 4, 5 ) ,
'order'=>'ASC',
'orderby'=>'post__in'
);
while ( $query->have_posts() ) : $query->the_post();
// и т.д.
$query = new WP_Query(array('post__not_in'=>array(1, 2, 3, 4, 5)));
while ( $query->have_posts() ) : $query->the_post();
// и т.д.
var items = document.querySelectorAll('.appartments-item');
var parent = document.body;
var SortElements = new Object();
items.forEach(function(item, indx){
var itemValue = parseInt(item.querySelector('.appartments-item__price').textContent.replace('руб', '').replace(/\s+/g, ''));
SortElements[itemValue] = {'element': item, 'index': indx} ;
});
var keys = Object.keys(SortElements);
function compareNumeric(a, b) {
a = parseInt(a);
b = parseInt(b);
if (a < b) return 1;
if (a > b) return -1;
}
keys.sort(compareNumeric);
keys.map(function(key, indx){
parent.insertAdjacentElement('beforeend', SortElements[key]['element']);
});
new XMC({
bodyID: 'rara', // id для блока с контентом
backgroundLayerID: 'lusia', //id для фона
selector: 'data-type', // атрибут у кнопок которые вызывают эту модалку
selectorValue: 'openModalForm', // Значение атрибута
btnId: 'fbgmfClose',
content: 'Привет', // Содержание модалки
classListBg: ['zuzu', 'zaza'], // Классы для wrappera
classListBody: ['zuzu', 'zaza2'], // Классы для блока с содержанием
classListBtn: ['zuzu', 'zaza3'], // Классы для кнопки закрыть
styleBg: { // Стили врапера. Пишем по js-су
top: '0',
left:'0',
right: '0',
bottom: '0',
position: 'fixed',
background: '#00000090',
justifyContent: 'center',
alignItems: 'center',
zIndex: '6'
},
styleBody: { // Стили блока с контентом. Пишем по js-су
minWidth: '200px',
minHeight: '200px',
background: '#ffffff',
justifyContent: 'center',
alignItems: 'center',
},
btnStyle: { // Стили кнопки закрыть. Пишем по js-су
width: '40px',
height: "40px",
background: '#ffffff',
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
position: 'absolute',
top: '5%',
right: '5%',
cursor: 'pointer'
}
});
data-proportion-targer-h="1" data-proportion-target="targetID"
$args = array(
'post_type' => 'post',
'offset'=> '' // отступ, сколько постов пропустить при запросе из базы
'posts_per_page'=> 10 // количество постов
);
window.location.hash = 2 // страница 2 например
<div data-proportion-h="1" style="widht:200px;"></div><!-- Высота 200px -->
<div data-proportion-h="2" style="widht:200px;"></div><!-- Высота 400px -->
<div data-proportion-h="0.5" style="widht:200px;"></div><!-- Высота 100px -->