• Как сделать 3-х уровневый аккордеон на WordPress?

    бесконечный уровень вложенности
    $(document).on('click','селектор',function(){jQuery(this).next().slideToggle(700);});
    //добавляем клас для выделения через css
    $(document).on('click','селектор',function(){jQuery(this).toggleClass('menuOpen').next().slideToggle(700);});
    //вместо slideToggle можно использовать, например, fadeToggle............

    в остальном (индивидуальная)задача css(в зависимости от потребностей и разметки)... скрываете все по умолчанию и располагаете список вертикально(например с помощью тегов ul, li)
  • Как делать прогноз погоды динамически на php?

    можно в базе, можно просто в файле, можно в массиве. При переходе на страницу показывайте выпадающий список с городами. Когда пользователь выбирает город, то передаёте значение в запрос и получаете нужную информацию.

    полученные один раз данные лучше всего, считаю, в базе данных в виде временной опции хранить(get_transient, set_transient), предварительно обработав разумеется до нужного значения. Зачем постоянно грузить запросами сайт, если даже на API написано, что обновление данных происходит не чаще, если память не изменяет, 2 часов?! Тем более, если у Вас базовый ключ(бесплатный)... опции создавать по названиям и проверять их в базе наличие, предварительно используя sanitize_title (особенно, если названия городов на русском), ну а, если её нет в базе или срок опции истек - пора запрос выполнить по новой...
  • Как вывести секцию в админке wp в определенном месте?

    не глядел сильно Ваш код уж простите. но вкладки они и в Африке вкладки... в гугле миллион примеров...
    вот Вам один из них(мой черновик):
    <script>
    jQuery(document).ready(function($){
    	$(document).on('click','ul.VAB_controlmenu li:not(.active)',function(){
    		$(this).addClass('active').siblings().removeClass('active').closest('div.VAB_control').find('div.VAB_control_body').removeClass('active').fadeOut(111).eq($(this).index()).fadeIn(777);
    		});
    	$(document).on('click','ul.VAB_controlmenu .active',function(){
    		$(this).removeClass('active').closest('div.VAB_control').find('div.VAB_control_body').removeClass('active').fadeOut(111).eq($(this).index()).fadeOut(111);
    		});
    	});	
    //// siblings Возвращает все элементы, которые являются соседними
    //// closest получает первый элемент, который совпадает с селектором
    /// метод .eq() позволяет выбрать элемент с конкретным индексом
    </script>
    <style>
    .VAB_control{font-size:12px;background:none;display:flex;width:100%;}/* Основной блок  */
    </style>
    
    <!--Вкладки слева:-->
    <div class="VAB_control">
    	<ul class="VAB_controlmenu">
    		<li class="active"><?php _e('Выбор версии','VAB');?></li>
    		<li><?php _e('Настройки верхней панели','VAB');?></li>
    		<li><?php _e('Центральный блок','VAB');?></li>
    	</ul>
    	<div class="VAB_control_content">
    		<div class="VAB_control_body active">первая группа опций</div>
    		<div class="VAB_control_body">вторая группа опций</div>
    		<div class="VAB_control_body">третья группа опций</div>
    	</div>
    </div>
    <!--Вкладки справа:-->
    <div class="VAB_control">
    	<div class="VAB_control_content">
    		<div class="VAB_control_body active">первая группа опций</div>
    		<div class="VAB_control_body">вторая группа опций</div>
    		<div class="VAB_control_body">третья группа опций</div>
    	</div>
    	<ul class="VAB_controlmenu">
    		<li class="active"><?php _e('Выбор версии','VAB');?></li>
    		<li><?php _e('Настройки верхней панели','VAB');?></li>
    		<li><?php _e('Центральный блок','VAB');?></li>
    	</ul>
    </div>

    подвигайте немного Ваши функции)))
    spoiler

    5ed126ffd01b4706028036.jpeg
  • Не получается запустить wordpress. Что делать?

    какая битность системы?
    какая версия опен сервера?
    какую битность запускаете?
    ....если скачали последнюю версию опенсервера, а виндовс 32 бита - уже проблема - т.к. поддерку 32 битных систем убрали в последней версии. теперь она только для 64 битных...
    перед первым запуском ставили Microsoft Visual C++ (желательно поставить все версии от 2005 года по 2019 ... при первом запуске он должен был рекомендовать установку с перезагрузкой)?
    какие настройки делали с модулями?
    что говорит, если попробовать в браузере открыть localhost?
    вы уверены что в адресе или названии домена нет кирилицы (timber.loc)... бывают недоразумения)))?
    ......
    судя по скринам виндовс 10 и последняя версия опен сервера... версия 10ки под вопросом...
    Системные требования

    Поддерживаемые версии ОС: 64-бит Windows 7 SP1 или новее (32-битные системы не поддерживаются);
    Минимальные аппаратные требования: 500 МБ свободной RAM и 4 ГБ свободного места на HDD;
    Требуется наличие Microsoft Visual C++ 2005-2008-2010-2012-2013-2015-2019 Redistributable Package;

    читайте тут
    Внимание! Особенности настройки Windows 10
  • Не получается запустить wordpress. Что делать?

    IvanMogilev, опен сервер сам добавляет в хостс домены из папки и удаляет при выключении .... вставляет он их в самое начало... тут что-то другое...
  • Как внедриить JSON в WordPress?

    WP Panda, верю...
    типо прогноза через каждые 3 часа на недельку)))):
    $forecast="https://api.openweathermap.org/data/2.5/forecast?q=".urlencode('Nizhnyaya Tavda, RU')."&lang=ru&units=metric&cnt=35&APPID=тут апи ключ";

    а вот на счет приложения... тут хммм...
  • Как внедриить JSON в WordPress?

    WP Panda,
    Видно, что она не всегда загружается, иногда загружается не доконца, и часто грузится - долго

    ещё бы.. ~2,30 МБ (2 412 544 байт) мукулатуры
    array(так до кучи)

    5ec808049ca2a756568855.jpeg
    5ec8080e6128e620684979.jpeg
    $data = wp_remote_get( 'https://steampay.com/api/products' );
    $args = json_decode( $data['body'],true );
    var_dump($args);

  • Как сделать сайдбар в wordpress?

    WP Panda, согласен...
    так, кстати, тоже работает
    'name'          => "left_sideBar",
    'id'            => "left_sideBar",

    ¯\_(ツ)_/¯
  • Как сделать сайдбар в wordpress?

    ...
    => "left_sidebar",
    ...
    dynamic_sidebar('left_sidebar');


    уберите верхний регистр left_sideBar
  • Как правильно реализовать пагинацию post type на странице?

    Custom Post Types
    содержимое archive-{post-type}.php

    <?php
    get_header();
    	if(have_posts()):
    		while(have_posts()):the_post();
    			//разметка get_template_part();
    		endwhile;
    			echo paginate_links();//функция пагинации
    	else:/*get_template_part();*/endif;
    get_sidebar();get_footer();

    вмешиваемся в квери запрос для архивной страницы {post-type} и выставляем 2 записи на страницу

    add_filter('pre_get_posts','Post_type_in_arhive');
    if(!function_exists('Post_type_in_arhive')){
    	function Post_type_in_arhive($query){if(!is_admin()){
    	if(is_post_type_archive('{post-type}')&&$query->is_main_query()){$query->set('posts_per_page',2);return $query;}
    	}}}


    похожий вопрос
  • Как задать class в коде php?

    DimDim7778,
    'label' => '<span class="dim">'.esc_html__('Войти', 'woodmart').'</span>',
    
    //'label' => sprintf('<span class="dim">%s</span>',__('Войти', 'woodmart')),
  • Нужно записать данные с формы в базу данных Wordpress?

    Вариантов можно придумать кучу. в том числе. которые в ответах. но, если Вам после прохождения опросника, нужно просто вывести общий результат на экран(и не только), я бы не стал базу захламлять. можно просто собрать в обработчике данные с формы поместить их в файл где-нибудь, а затем считать эти данные с файла и вывести в таблице.
    но тут уже, чистый php, например:
    file_put_contents
    Считываем
    удалить файл
    ну и так далее, в зависимости от потребностей...
    и база данных чистая останется...
    что-то типо

    5ebe3542d3121894222516.jpeg
    5ebe354a540fb274913143.jpeg
  • Как лучше сделать черно-белые картинки для постов в WP?

    img{filter:grayscale(100%);}
    img:hover{filter:unset;}
    /*img:hover{filter:initial;}*/
    /*img:hover{filter:none;}*/
    /*img:hover{filter:grayscale(0%);}*/
    .....
  • Почему не загружается страница с формой?

    и, кстати, заголовки уберите, иначе с большой вероятностью письма в спам полетят с такими заголовками... Заголовки с головой задавать надо, а не с бухты барахты
    все это:
    $headers = array(
    'From: Me Myself <me@example.net>',
    'content-type: text/html',
    'Cc: John Q Codex <jqc@wordpress.org>',
    'Cc: iluvwp@wordpress.org', // тут можно использовать только простой email адрес
    );
    
    wp_mail( $to, $contactSubject, $contactMessage, $headers );

    замените на это (пусть лучше автоматом заданы будут):
    wp_mail( $to, $contactSubject, $contactMessage);
  • Почему не загружается страница с формой?

    <form name="contactForm" id="contactForm" method="post" action="">

    $.ajax({
            url: '/wp-admin/admin-ajax.php?action=send_mail',

    ну или:
    var formss = ('#contactForm');
    var action = $(formss).attr('action');
    
    $(formss).on('submit', function(event) {

    ну и event.preventDefault();в место event.prevent.Default();
  • Как увеличить длину прокрутки слайдера?

    это смещение слайдера, которое суммируется. Это параметр при инициализации скрипта itemWidth + itemMargin, например.itemWidth:'.$VAB_FL_styleW.'+7,itemMargin:15,
    т.е в моем случае, например VAB_FL_styleW=128 в итоге смещение будет по интервалу времени на 150
    width: 2000%;
    transition-duration: 0s;
    transform: translate3d(-150px, 0px, 0px);

    ...
    width: 2000%;
    transition-duration: 0s;
    transform: translate3d(-300px, 0px, 0px);

    и т.д.
    осмелюсь предположить вы редактировали css слайдера и не учли этого, либо подобное
    например, если задать стили
    .slides li{width:225px!important;}
    уже не увидите все слайды, т.к. скрипт смещает на 150px и в сумме 4 слайда должно быть 600px, а со стилем
    .slides li{width:225px!important;}
    выходит 900px, поэтому последние 300px будут не видны.... кто, где копался, откуда качали флекс и т.д. и т.п. Вам лучше знать... если стили менялись, и все учтено было, должно быть гуд в любой версии...
  • Как добавлять шаблоны html с измененным текстом через админ-панель в WordPress?

    Вы так же можете получить все одобренные комментарии и вывести через шорткод в любом месте на сайте
    например создаю произвольный тип записи
    register_post_type('testimonials',
    создаете запись и добавляете свой шаблон комментариев аналогично выше написанному(как минимум убираете древовидные (вложенные) комментарии и кнопку «ответить»).
    для этого типа постов добавляем метабокс с шорткодом, он автоматом будет брать id текущего поста и выстаскивать по нему все одобренные комменты с оберткой в нужный слайдер:
    метабокс
    add_action('add_meta_boxes','VAB_short_for_testimonials_meta_box');if(!function_exists('VAB_short_for_testimonials_meta_box()')){function VAB_short_for_testimonials_meta_box(){$screens=array('testimonials');add_meta_box('post_meta',__('Слайдер комментариев','VAB'),'testimonials_meta_box_callback',$screens,'side','high');}}if(!function_exists('testimonials_meta_box_callback()')){function testimonials_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_testimonials_show id="'.$post->ID.'"]</div>';}}

    spoiler

    5ebe2c46a6821377423915.jpeg
    5ebe2c5376d83199572875.jpeg

    шорткод:
    add_shortcode("VAB_testimonials_show","VAB_short_for_testimonials");if(!function_exists('VAB_short_for_testimonials')){function VAB_short_for_testimonials($atts){$thepostid=intval($atts['id']);$output='';query_posts("p=$thepostid");$comments=get_comments(array('post_id'=>$thepostid,'status'=>'approve'));$output.=
    ....оборачиваем все в разметку слайдера и через форыч наполняем контейнерами с данными....
    wp_reset_query();return $output;}}

    spoiler

    справа комментарии слайдятся фэйдом
    5ebe2d790bc50144360843.jpeg
  • Как добавлять шаблоны html с измененным текстом через админ-панель в WordPress?

    Создаете, к примеру, новый шаблон(файл custom.php):
    <?php #Template Name: Пользовательская анкета/резюме
    get_header();
    	if(have_posts()):
    		while(have_posts()):the_post();
    			get_template_part('VAB_template_parts/page/VAB','custom');
    		endwhile;
    	else:get_template_part('VAB_template_parts/post/VAB','none');endif;
    get_sidebar();get_footer();

    в
    get_template_part('VAB_template_parts/page/VAB','custom');

    главное указать отличный от обычного файл комментов. остальная разметка разумеется своя, например:
    ....
    if(comments_open()):comments_template('/VAB_template_parts/forms/VAB-custom.php');endif;
    ....

    вот в этом файле и оформляете свой шаблон комментов. тут уже задача, смотря, что Вам нужно. Вам надо слайдер вывести вместо обычного листа комментов, либо в контенте, а лист оставить пустым.
    добавляем поля именно к этому шаблону (снова на своем примере):
    add_action('comment_form_logged_in_after','add_custom_fields');
    add_action('comment_form_after_fields','add_custom_fields');
    function add_custom_fields(){
    if(!is_page_template('custom.php')&&!is_page_template('customAd.php')){return;}
    if(is_page_template('custom.php')){
    echo	'<div class="VAB_custom_label"><p class="comment-form-yorfamily">'.
    			'<label for="yorfamily"> <br /></label>'.
    			'<input id="yorfamily" class="VAB_Speech_Attr VABInputForm" name="yorfamily" type="text" size="30" required="required" placeholder="'.__('Ваша фамилия','VAB').'..."/></p>',
    
    ....................
    //перемещаю тут же поля после добавления
    if(!is_user_logged_in()){?><script type="text/javascript">if('#commentform .VAB_custom_label'){jQuery('#commentform #author').after(jQuery('#commentform .VAB_custom_label'));}</script><?php }

    spoiler

    5ea97a757a4e7185213465.jpeg

    сохраняем
    add_action('comment_post','save_add_custom_fields');
    function save_add_custom_fields($comment_id){
    if(!empty($_POST['yorfamily'])){$yorfamily=sanitize_text_field($_POST['yorfamily']);add_comment_meta($comment_id,'yorfamily',$yorfamily);}
    if(!empty($_POST['middlename'])){$middlename=sanitize_text_field($_POST['middlename']);add_comment_meta($comment_id,'middlename',$middlename);}

    по сути остается колонки и данные добавить в админку. я их добавляю только при наличии этих методанных. Поэтому подсчитываю сначало (функция для подсчета):
    if(!function_exists('VAB_check_custom_meta')){function VAB_check_custom_meta($field){global $wpdb;$fieldCount=$wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->commentmeta WHERE meta_key=%s",$field));return $fieldCount;}}

    теперь добавляем колонки и информацию:
    //колонки
    add_filter('manage_edit-comments_columns','registr_comments_columns');function registr_comments_columns($columns){
    $yorfamily=VAB_check_custom_meta('yorfamily');
    if($yorfamily>0){array_push($vab_columns['vab_yorfamily']=__('Фамилия','VAB'),
    .......
    return array_slice($columns,0,1)+$vab_columns+$columns;}
    //данные
    add_filter('manage_comments_custom_column','add_comments_columns',10,2);function add_comments_columns($column,$comment_ID){
    ...
    if($column=='vab_yorfamily'){echo get_comment_meta($comment_ID,'yorfamily',true);}
    ...
    //тут же стили в manage_comments_custom_column
    $yorfamily=VAB_check_custom_meta('yorfamily');$titlemessage=VAB_check_custom_meta('titlemessage');
    if($yorfamily>0||$titlemessage>0){echo '<style type="text/css">.column-vab_yorfamily,.column-vab_middlename,.column-vab_education,.column-vab_birth,.column-vab_city,.column-vab_price{width:66px;}.column-author,.column-vab_titlemessage{width:144px!important;}.column-response,.column-date{width:111px!important;}</style>';}

    добавление колонок гуглится хорошо...
    если при одобрении удалении создавать/удалять пост, например, надо - присасываемся к событиям:
    добавили коммент
    add_action('comment_post','testimonials_image_comment_post',10,2);
    function testimonials_image_comment_post($id,$comment_approved){
    if($comment_approved=='0'){$status='draft';}else if($comment_approved=='1'){$status='publish';}
    ...

    смена статуса комментария
    add_action('transition_comment_status','approve_comment_callback',10,3);function approve_comment_callback($new_status,$old_status,$comment){if($comment->comment_approved=='0'||$comment->comment_approved=='trash'){$status='draft';}else if($comment->comment_approved=='1'){$status='publish';}....

    удаление:
    add_filter('delete_comment','approve_comment_costom_delS');function approve_comment_costom_delS($id){...
  • Как добавлять шаблоны html с измененным текстом через админ-панель в WordPress?

    почитайте комментарии тут. Вполне не сложно реализовать... особенно, если использовать плагины типо ACF думаете. хотя и без них не сложно(в любом случае разбираться: либо с кодом плагина, либо движка вордпресс). А данные одобренные вместо списка комментов отправляете в карусель Вашу. И без лишних отправок на емайл, лишь уведомление о новом комментарии от самого движка. на странице в админке и подправить можно будет перед одобрением:
    5ea8375bc5ab6917004056.jpeg
  • Как сделать задержку перехода на вордпресс?

    например, что-то в роди этого(редирект на гугл):
    header('Refresh:5 url=https://www.google.ru/');
    exit('<center style="margin-top:13%;font-size:33px;">'.__('Извините, но через несколько секунд мы перенаправим Вас на другой сайт!','VAB').'<br /><span id="Ttimer"></span></center><script type="text/javascript">var Ttimer=document.getElementById(\'Ttimer\'),Ttimes=5;Ttimer.innerHTML=Ttimes;setInterval(function(){Ttimes--;Ttimer.innerHTML=Ttimes;},1000);</script>');

    5ea7fa8d3d558634090878.jpeg