var upload_IMG;
upload_IMG=custom_uploader.state().get('selection').toJSON();
get_categories(array('hierarchical'=>false));
...
echo '<li></li>'
...
Смысла нет вызывать дважды эту функцию
$all_categories = get_categories();
$li_str='';
if( $all_categories ){
foreach( $all_categories as $single_cat ){
$li_str.='<li>' . $single_cat->name . '</li>';
}
}
echo '<ul >';
echo $li_str;
echo '</ul>';
echo '<ul >';
echo $li_str;
echo '</ul>';
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
$table_name = $wpdb->get_blog_prefix() . 'my_products';
$charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset} COLLATE {$wpdb->collate}";
$sql = "CREATE TABLE {$table_name} (
id int(11) unsigned NOT NULL auto_increment,
name varchar(255) NOT NULL default '',
price int(11) unsigned NOT NULL default '0',
PRIMARY KEY (id),
KEY price (price)
) {$charset_collate};";
dbDelta( $sql );
$table_name = $wpdb->prefix . 'my_products';
$wpdb->insert(
$table_name,
array(
'id'=>'111',
'name'=>'2222',
'price'=>'333'
),
array( '%s','%s','%s' )
);
<?php
// Silence is golden.
Просто выводите в каких-либо тегах текст мол смотреть видео жирным шрифтом, а в дата атрибут ссылку кинте. Ну и по клику на тег забирайте дата ссылку и разверните ифрайм с затемнением контента....
<div class="youtuBik" data-src="https://www.youtube.com/embed/neHA4MJwpnY">Смотреть видео на ютуб канале «Пилот, разборы, ответы и лайвы»</div>
$(document).on('click','.youtuBik',function(){
var youtuBik=document.createElement('div'),he=$(window).height();
youtuBik.className="VAB_youtuBik";
youtuBik.innerHTML = '<style>'+
'.VAB_youtuBik{'+
'position:fixed;'+
'height:100%;'+
'width:100%;'+
'z-index:999999;'+
'background:rgba(0,0,0,0.9);'+
'left:0;top:0;'+
'bottom:0;'+
'text-align:center;'+
'}'+
'.VAB_youtuBik iframe{'+
'margin-top:'+he/12.5+'px;'+
'}'+
'</style>'+
'<center>'+
'<iframe width="75%" height="'+he/1.25+'" src="'+$(this).attr('data-src')+'" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'+
'</center>';
CenterBlock.insertBefore(youtuBik,CenterBlock.children[0]);
$(document).on('click','.VAB_youtuBik',function(){
$('.VAB_youtuBik').fadeOut(function(){
$('.VAB_youtuBik').remove();
});
return false;
});
});
используем add_filter('auth_redirect_scheme','stop_redirect',9999); //проверяем если пользователь не авторизован, отдаем, к примеру, 404 страницу при обращении на .../wp-admin или .../admin вместо редиректа на страницу авторизации
if(is_multisite()&&!get_option('users_can_register')){add_action('init','функция');}
add_filter('site_url','функция',10,3);//подменяем wp-login на свой. Аналогично с wp-comments-post
add_filter('mod_rewrite_rules','функция'); //рулим через .htaccess Дефолтный wp-login, на свою кастомную после смыны. Дефолтный wp-login блочим тут же, либо через настройки веб сервера, например Nginx. Аналогично с wp-comments-post
location ~ (xmlrpc|wp-comments-post|wp-config|wp-config-sample|wp-login)\.php$ {
error_page 404 /my_super_404.html;
return 404;
}
add_action('register_form','функция',10,1);
add_action('login_form','функция');
add_action('login_enqueue_scripts','функция');
add_filter('wp_authenticate_user','функция',10,2);
add_filter('registration_errors','функция');
add_filter('login_headerurl','функция');
add_filter('login_headertext','функция');
add_action('login_footer','функция');
add_filter('login_redirect','функция');
add_action('wp_logout','функция');
add_action('comment_form','функция');
add_action('pre_comment_on_post','функция',0);
add_action('init','функция');
add_filter('xmlrpc_enabled','__return_false');
add_filter('the_generator','__return_empty_string');
remove_action('wp_head','rsd_link');//Используется различными блог-клиентами или веб-сервисами для публикации/изменения записей в блоге.
remove_action('wp_head','feed_links',2);
remove_action('wp_head','feed_links_extra',3);
// remove_action('wp_head','rel_canonical');//Убирает канонические линки
remove_action('wp_head','wlwmanifest_link');// Используется блог-клиентами, а вернее лишь одним из них - Windows Live Writer. Не используете WLW - удаляйте.
remove_action('wp_head','wp_resource_hints',2);//dns-prefetch
remove_action('wp_head','wp_shortlink_wp_head');// Убирает короткую ссылку к текущей странице
remove_action('wp_head','wp_oembed_add_discovery_links');//alternate - application/json+oembed и alternate - text/xml+oembed
remove_action('wp_head','rest_output_link_wp_head',10,0);//alternate - application/json и rel api.w.org
remove_action('template_redirect','rest_output_link_header',11,0);//че-то с рест апи
$vab_prot=!empty($_SERVER['HTTP_X_FORWARDED_PROTO'])?$_SERVER['HTTP_X_FORWARDED_PROTO']:'http';
define('WP_CONTENT_FOLDERNAME','my-super-content');
define('WP_CONTENT_DIR',ABSPATH . WP_CONTENT_FOLDERNAME) ;
define('WP_SITEURL',$vab_prot.'://'.$_SERVER['HTTP_HOST'].'/');
define('WP_CONTENT_URL',WP_SITEURL . WP_CONTENT_FOLDERNAME);
add_filter('body_class','функция');
менять пользователей не надо(можно наворотить, что потом в системные лог журналы будут сыпаться ероры на отсутствие доступа и они будут вечно большими по объему). надо корректно настроить права доступа (гуглите и желательно вникайте), а для phpfpm обязательно необходима настройка пула