 
  
   
  
  используем 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','функция'); 
  
  Как ограничить число регистраций?
И чтобы боты тоже не могли региться. А то боты могут обходить запрет на регистрацию даже при убранной галке в настройках Общие.
 
  
  Есть нативная функция wp_upload_dir() для получения массива данных о папке с медиафайлами
$VAB_UPLOAD = wp_upload_dir();
if ( ! defined( 'VAB_UPLOAD_DIR' ) ) {
	define( 'VAB_UPLOAD_DIR', $VAB_UPLOAD['basedir'] );
}
if ( ! defined( 'VAB_UPLOAD_URL' ) ) {
	define( 'VAB_UPLOAD_URL', $VAB_UPLOAD['baseurl'] );
}ECHO VAB_UPLOAD_DIR;
ECHO '<BR>';
ECHO VAB_UPLOAD_URL; 
  
   
  
  Каким образом можно реализовать такой же сайдбар?
$arg=array('title_li'=>'','echo'=>0);
echo wp_list_pages($arg);
//даже так выводит дочерние wp_list_pages();
А именно как вывести страницы у которых есть дочерние страницы?
 
  
  Подскажите как сделать так, что бы поля ozon_ru_link и apteka_ru_link выводились только при условии что они заполнены ссылками в админке
$value = get_field( 'text_field' );
if( $value ) {
	echo $value;
}
else {
	echo 'empty';
}
....
if ( 'проверяем заполнено ли поле apteka_ru_link' ) { ?>
	<div class="knopka1">
		<a rel="nofollow" target="_blank" class="pokypka" href="{{ get_field('apteka_ru_link') }}">
			<img class="knopochka" src="/wp-content/uploads/2022/04/Без-имени-2.png">
		</a>
	</div>
<?php }
if ( 'проверяем заполнено ли поле ozon_ru_link' ) { ?>
<div class="knopka2">
	<a rel="nofollow" target="_blank" class="pokypka" href="{{ get_field('ozon_ru_link') }}">
    <img class="knopochka" src="/wp-content/uploads/2022/04/Без-имени-3.png">
	</a>
</div>
<?php  } 
  
  add_action('admin_enqueue_scripts','load_admin_styles_scripts');
if(!function_exists('load_admin_styles_scripts')){
  function load_admin_styles_scripts(){
    wp_enqueue_style('wp-color-picker');
    wp_enqueue_script('wp-color-picker');
}}if(!function_exists('admin_footer_script')){
  function admin_footer_script(){?>
    <script type="text/javascript">
      jQuery(document).ready(function($){
        $('.wpColorChoose').wpColorPicker();});
    </script><?php }}
add_action('admin_footer','admin_footer_script',99);if(!function_exists('VAB_user_fields')){
  function VAB_user_fields($user){
    global $pagenow;
    if($pagenow=='profile.php'||$pagenow=='user-edit.php'){
    wp_nonce_field('VAB_mode_ufields_nonce','VAB_ufields_nonce');
    $id=$user->ID;
    $color=get_the_author_meta('myColor',$id);//получаем мета данные с ключом myColor для текущего пользователя
    echo'<input name="myColor" id="color" type="text" class="wpColorChoose" value="'.$color.'">';
}}}
add_action('show_user_profile','VAB_user_fields');
add_action('edit_user_profile','VAB_user_fields');if(!function_exists('save_VAB_user_fields')){
  function save_VAB_user_fields($user_id){
    $nonce=filter_input(INPUT_POST,'VAB_ufields_nonce',FILTER_SANITIZE_STRING);
    if(!$nonce){return;}//проверяем наши nonce поля
    if(!wp_verify_nonce($nonce,'VAB_mode_ufields_nonce')){return;}//проверяем наши nonce поля
    $myColor=get_the_author_meta('myColor',$user_id);//получаем мета данные с ключом myColor для текущего пользователя
    $newColor=$_POST['myColor'];//проверяем передачу пост данных... можно доп. обработать фильтрами в зависимости от типа данных
    if(empty($newColor)){//если данные пустые удалим мета
      delete_user_meta($user_id,'myColor');
    }else{//иначе сохраним в мета
     update_user_meta($user_id,'myColor',$newColor);}}}
add_action('personal_options_update','save_VAB_user_fields');
add_action('edit_user_profile_update','save_VAB_user_fields');if(!function_exists('VAB_user_fields2')){
  function VAB_user_fields2($user){
    global $pagenow;
    if($pagenow=='profile.php'||$pagenow=='user-edit.php'){
      wp_nonce_field('VAB_mode_ufields_nonce','VAB_ufields_nonce');
      $id=$user->ID;
      $uMeta=get_the_author_meta('uMeta',$id);//получаем мета данные с ключом myColor для текущего пользователя
      $myCheckbox=isset($uMeta['myCheckbox'])?'checked="checked"':'';
      $myColor=isset($uMeta['myColor'])?$uMeta['myColor']:'';
      echo'<input name="uMeta[myCheckbox]" id="myCheckbox" type="checkbox" '.$myCheckbox.'>';
      echo'<br><br>';
      echo'<input name="uMeta[myColor]" id="myColor" type="text" class="wpColorChoose" value="'.$myColor.'">';
    }}}
add_action('show_user_profile','VAB_user_fields2');
add_action('edit_user_profile','VAB_user_fields2');if(!function_exists('save_VAB_user_fields2')){
  function save_VAB_user_fields2($user_id){
    $nonce=filter_input(INPUT_POST,'VAB_ufields_nonce',FILTER_SANITIZE_STRING);
    if(!$nonce){return;}//проверяем наши nonce поля
    if(!wp_verify_nonce($nonce,'VAB_mode_ufields_nonce')){return;}//проверяем наши nonce поля
    $uMeta=get_the_author_meta('uMeta',$user_id);//получаем мета данные с ключом myColor для текущего пользователя
    $newuMeta=$_POST['uMeta'];//проверяем передачу пост данных... можно доп. обработать фильтрами в зависимости от типа данных
    if(empty($newuMeta['myCheckbox'])&&empty($newuMeta['myColor'])){//если данные пустые удалим мета
      delete_user_meta($user_id,'uMeta');
    }else{//иначе сохраним в мета
     update_user_meta($user_id,'uMeta',$newuMeta);}}}
add_action('personal_options_update','save_VAB_user_fields2');
add_action('edit_user_profile_update','save_VAB_user_fields2'); 
  
  <?php
/**
 * The searchform.php template.
 *
 * Used any time that get_search_form() is called.
 *
 * @link https://developer.wordpress.org/reference/functions/wp_unique_id/
 * @link https://developer.wordpress.org/reference/functions/get_search_form/
 *
 * @package WordPress
 * @subpackage Twenty_Twenty_One
 * @since Twenty Twenty-One 1.0
 */
/*
 * Generate a unique ID for each form and a string containing an aria-label
 * if one was passed to get_search_form() in the args array.
 */
$twentytwentyone_unique_id = wp_unique_id( 'search-form-' );
$twentytwentyone_aria_label = ! empty( $args['aria_label'] ) ? 'aria-label="' . esc_attr( $args['aria_label'] ) . '"' : '';
?>
<form role="search" <?php echo $twentytwentyone_aria_label; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Escaped above. ?> method="get" class="search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>">
	<label for="<?php echo esc_attr( $twentytwentyone_unique_id ); ?>"><?php _e( 'Search…', 'twentytwentyone' ); // phpcs:ignore: WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?></label>
	<input type="search" id="<?php echo esc_attr( $twentytwentyone_unique_id ); ?>" class="search-field" value="<?php echo get_search_query(); ?>" name="s" />
	<input type="submit" class="search-submit" value="<?php echo esc_attr_x( 'Search', 'submit button', 'twentytwentyone' ); ?>" />
</form> 
  
  <?php
if(!defined('ABSPATH')){exit;}
$unique_id=wp_unique_id('search-form-');
...
<input type="search" name="s" class="s" id="<?php echo esc_attr($unique_id);?>" title="<?php printf(esc_attr__('Поле для ввода текста','VAB'));?>" placeholder="<?php echo esc_attr__('Текст поиска','VAB'); ?>" value="<?php echo get_search_query();?>"/>
... 
  
  
add_filter( 'show_admin_bar', '__return_false' );echo '<a href="'. get_site_url() . '/wp-admin/profile.php">Профиль</a>';add_filter('wp_nav_menu_items','add_menu_link',10,2);
if(!function_exists('add_menu_link')){function add_menu_link($items,$args){
... 
  
  <div class="entry-content pad_min">
      <div class="slider_page">
        <?php if ( have_rows( 'acf_slider' ) ) : ?>
        <?php while ( have_rows( 'acf_slider' ) ) : the_row(); ?>
        <div class="slider_page_slid">
          <?php $acf_slid = get_sub_field( 'acf_slid' ); ?>
          <?php if ( $acf_slid ) { ?>
          <a href="<?php echo $acf_slid['url']; ?>"><img src="<?php echo $acf_slid['url']; ?>" alt="<?php echo $acf_slid['alt']; ?>" /></a>
          <?php } ?>
        </div>
        <?php endwhile; ?>
        <?php else : ?>
        <?php // no rows found ?>
        <?php endif; ?>
      </div>
    </div> 
  
  
 
  
  


и не мог просматривать страницы предназначенные для других пользователей
я таким образом делаю:
CenterBlock - это id div`а центрально блока(задайте любой свой)