• Как в Wordpress вывести посты определенной рубрики?

    V_A_B
    @V_A_B
    ¯\_(ツ)_/¯
    Вот Вам пример вывода по слагу(ярлык):
    $slug='default';
    if($slug){
    	$arg=array('category_name'=>$slug,'posts_per_page'=>3,);
    
    $catquery = new WP_Query($arg); ?>
    <?php while($catquery->have_posts()) : $catquery->the_post(); ?>
    <h3><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h3>
    <div><?php the_excerpt(); ?></div>
    
    <?php endwhile;wp_reset_postdata();
    	}

    если что-то не ясно можете глянуть сюда:
    spoiler

    Видео на ютуб вывода с управлением через кастомайзер. исходники под видео
    об id то же сказано...
    Ответ написан
    24 комментария
  • Call to undefined function add_meta_box(). Как?

    V_A_B
    @V_A_B
    ¯\_(ツ)_/¯
    Пример(перепишите под свой тип постов и разметку):
    add_action('add_meta_boxes','VAB_short_for_posts_meta_box');
    if(!function_exists('VAB_short_for_posts_meta_box')){
    	function VAB_short_for_posts_meta_box(){
    		$screens=array('post');
    		add_meta_box('post_meta',__('Шорткод Поста','VAB'),'post_meta_box_callback',$screens,'side','high');
    		}
    	}
    	if(!function_exists('post_meta_box_callback')){
    		function post_meta_box_callback($post,$meta){
    			$screens=$meta['args'];
    			echo __('Скопируйте Шорткод ниже для размещения этого поста в виджетах, постах и страницах:','VAB'),'<div class="VAB_ShortCode" style="background:#FF0000;color:#FFF;padding:4px;border-radius:4px;">[VAB_post_show id="'.$post->ID.'"]</div>',__('Для вывода миниатюр используйте шорткод ниже:','VAB'),'<div class="VAB_ShortCode" style="background:#FF0000;color:#FFF;padding:4px;border-radius:4px;">[VAB_min_post_show id="'.$post->ID.'"]</div>';
    		}
    	}


    Ваш вариант в спойлере
    spoiler

    function sso_dictors_lib_post_type() {
    
            $dictors_labels = array(
                'name'                  => _x( 'База Дикторов', 'sso_dictors_lib' ),
                'singular_name'         => _x( 'База Дикторов', 'sso_dictors_lib' ),
                'menu_name'             => __( 'База Дикторов', 'sso_dictors_lib' ),
                'name_admin_bar'        => __( 'Диктора', 'sso_dictors_lib' ),
                'attributes'            => __( 'Аттрибуты диктора', 'sso_dictors_lib' ),
                'all_items'             => __( 'Все Дикторы', 'sso_dictors_lib' ),
                'add_new_item'          => __( 'Добавить Нового Диктора', 'sso_dictors_lib' ),
                'add_new'               => __( 'Добавить Диктора', 'sso_dictors_lib' ),
                'new_item'              => __( 'Новый Диктор', 'sso_dictors_lib' ),
                'edit_item'             => __( 'Редактировать Диктора', 'sso_dictors_lib' ),
                'update_item'           => __( 'Обновиить Диктора', 'sso_dictors_lib' ),
                'view_item'             => __( 'Просмотеть Диктора', 'sso_dictors_lib' ),
                'view_items'            => __( 'Просмотреть Диктора', 'sso_dictors_lib' ),
                'search_items'          => __( 'Найти Диктора', 'sso_dictors_lib' ),
                'not_found'             => __( 'Дикторов не найдено', 'sso_dictors_lib' ),
                'not_found_in_trash'    => __( 'Здесь Дикторов нет', 'sso_dictors_lib' ),
                'featured_image'        => __( 'Фотография Диктора', 'sso_dictors_lib' ),
                'set_featured_image'    => __( 'Установить фотографию Диктора', 'sso_dictors_lib' ),
                'remove_featured_image' => __( 'Удалить фотографию Диктора', 'sso_dictors_lib' ),
                'use_featured_image'    => __( 'Все фотографии Диктора', 'sso_dictors_lib' ),
                'insert_into_item'      => __( 'Добавить в анкету', 'sso_dictors_lib' ),
                'uploaded_to_this_item' => __( 'Прикрепить к этой анкете', 'sso_dictors_lib' ),
                'items_list'            => __( 'Список Дикторов', 'sso_dictors_lib' ),
                'items_list_navigation' => __( 'Список Дикторов', 'sso_dictors_lib' ),
                'filter_items_list'     => __( 'Фильтр Дикторов', 'sso_dictors_lib' ),
            );
    
            $rewrite = array(
            'slug'                  => 'sso_dictors_lib',
            'with_front'            => true,
            'pages'                 => true,
            'feeds'                 => true,
            );
            $dictors_args = array(
                'label'                 => __( 'База Дикторов', 'sso_dictors_lib' ),
                'description'           => __( 'База Дикторов и Актеров озвучки.', 'sso_dictors_lib' ),
                'labels'                => $dictors_labels,
                'supports'              => array('revisions', 'thumbnail' ),
                'taxonomies'            => array( 'sso_dictor_type'),
                'hierarchical'          => false,
                'public'                => true,
                'show_ui'               => true,
                'show_in_menu'          => true,
                'menu_position'         => 5,
                'menu_icon'             => 'dashicons-admin-users',
                'show_in_admin_bar'     => true,
                'show_in_nav_menus'     => true,
                'can_export'            => true,
                'has_archive'           => true,
                'exclude_from_search'   => true,
                'publicly_queryable'    => true,
                'query_var'             => 'post_type',
                'rewrite'               => $rewrite,
                'capability_type'       => 'post', 
            );
            register_post_type( 'sso_dictors_lib', $dictors_args );
    
        }
        add_action( 'init', 'sso_dictors_lib_post_type', 0 );
    
    
    
    
    function add_dictor_data(){ ?>
        <div class="form-row">   
         <div class="form-group row" id="new_proprietor_data">        
             <div class="form-group col-3">
              <label for="dictor__surname">Фамилия:</label>
              <input type="text" needed="true" class="form-control" id="dictor__surname" value="" >
             </div>
    
             <div class="form-group col-3">
              <label for="dictor__name">Имя:</label>
              <input type="text" needed="true" class="form-control" id="dictor__name" value="" >
             </div>
    
             <div class="form-group col">
              <label for="dictor_phone">Телефон:</label>
              <input type="text" class="form-control" needed="true" id="dictor_phone" value="" > 
             </div>        
    
             <div class="form-group col">
              <label for="dictor_mail">E-Mail:</label>
              <input type="text" class="form-control" needed="true" id="dictor_mail" value="" >
             </div>
         </div>
        </div>
    
    <?php 
    }
    add_action('add_meta_boxes','VAB_short_for_posts_meta_box');
    if(!function_exists('VAB_short_for_posts_meta_box')){
      function VAB_short_for_posts_meta_box(){
        $screens=array('sso_dictors_lib');
    		add_meta_box('dictordatas', 'Личные Данные Диктора', 'add_dictor_data', $screens, 'normal', 'high');
        }
      }

    Ответ написан
    3 комментария
  • Как скрыть контент и показывать только после ввода кода?

    V_A_B
    @V_A_B
    ¯\_(ツ)_/¯
    Зачем же сразу плагины? Можно, например, использовать сессию. Не забываем, что сессию и куки объявляем до вывода любой информации:
    <?php session_start();#Template Name: Загрузка файлов из списка на сервер с новым именем
    get_header();
    	if(have_posts()):
    		while(have_posts()):the_post();
    			get_template_part('VAB_template_parts/forms/VAB','FilesLoadServer');
    		endwhile;
    	endif;
    get_sidebar();get_footer();

    Ну и сам собственно код куда-нибудь:
    if(!function_exists('VAB_Authentication()')){function VAB_Authentication(){
    $pass='session_password';//это пароль
    $errorSession='';
    	if(isset($_POST['pass_value'],$_POST['pass_btn'])){
    		if($pass==$_POST['pass_value']){$_SESSION['unique_ProtecT']=true;
    		}else{$_SESSION['ProtecT']=false;$errorSession='<div title="'.__('Неверный пароль!','VAB').'">'.__('Неверный пароль!','VAB').'</div>';}}
    	if(empty($_SESSION['unique_ProtecT'])){?>
    		<div class="contact_message">
    			<div class="ProtecT">
    				<center>
    					<h4><?php echo $errorSession;printf(__('Страница для Администрации','VAB'));?></h4>
    					<form method="POST">
    						<div><?php printf(__('Введите пароль','VAB'));?>:&nbsp;&nbsp;&nbsp;<input type="text" name="pass_value" size="30" />&nbsp;&nbsp;&nbsp;<input type="submit" value="<?php printf(__('Ввод','VAB'));?>" name="pass_btn" />
    						</div>
    					</form>
    					<br><a href="<?php bloginfo('url');?>"><?php printf(__('Отмена','VAB'));?></a>
    				</center>
    			</div>
    		</div>
    <?php }}}
    if(function_exists('VAB_Authentication')):VAB_Authentication();endif;

    Вариант, где пароль устанавливается через кастомайзер или какой-либо раздел по управлению темой. В данном случае через мой раздел по управлению темой...:
    if(VABMoD('VAB_pass_session'))://если в опции есть какое-либо значение, то пароль есть значение опции
         $pass=VABMoD('VAB_pass_session');
    else://иначе пароль по умолчанию
        $pass='session_password';
    endif;

    Мы можем используя данную функцию просто затемнить экран(но вся разметка будет доступна в инженерной панели):
    5d4061ac7d5e0375154361.jpeg
    либо после вызова функции остановить все скрипты:
    if(function_exists('VAB_Authentication')):VAB_Authentication();endif;
    exit();//завершает все скрипты после... в том числе и сайдбары и футер и т.д.

    5d4061e606bfc663618253.jpeg
    или комбинируем оба варианта(оформляем, наводим красоту... баннеры на бакграунд и прочую чех**ню)
    Помимо можно просто обернуть блок, который необходимо скрыть в проверку:
    if(isset($_SESSION['unique_ProtecT'])&&$_SESSION['unique_ProtecT']==true){
    //скрытый контент(включая инженерную панель разумеется)
    }
    Ответ написан
    Комментировать
  • Wordpress как в зарегестрированное меню передать ссылку на свой шаблон?

    V_A_B
    @V_A_B
    ¯\_(ツ)_/¯
    add_action('admin_menu','VAB_admin_menu');
    if(!function_exists('VAB_admin_menu')){
    	function VAB_admin_menu(){
    		add_menu_page(
    			__('Параметры темы','VAB'),
    			__('Параметры темы','VAB'),
    			'manage_options',
    			'VAB_V_C',
    			'VAB_version_control',
    			VABGTDU.'/images/VAB_Theme_Options/VAB_Theme_Options.png',4
    		);
    		add_submenu_page('VAB_V_C',__('Дополнительная информация','VAB'),__('Дополнительная информация','VAB'),'manage_options','VAB_V_C_I','VAB_version_control_info');
    		add_submenu_page('themes.php',__('Параметры темы','VAB'),__('Параметры темы','VAB'),'manage_options','VAB_V_C','VAB_version_control');
    }}
    register_post_type('новый тип',array(
      'show_in_menu'=>'VAB_V_C',
      ));
    Ответ написан
    Комментировать