• Почему в категории WordPress не отображаются записи?

    есть одна мысль: 4 поста в одной под рубрике (2 поста в стандартном тип post, другие 2 в кастомном). Вы проваливаетесь в под рубрику и он показывает Вам посты под рубрики стандартного типа поста (т.к. другие 2 не принадлежат тип post их и не видно, но во вкладке кастомного типа поста они должны отображаться).
  • Wordpress | Не работает update_user_meta. В чем ошибка?

    И Вам день добрый.
    ...дак написано же черным по белому

    Warning: strtotime() expects at least 1 parameter, 0 given in


    Перевод - Предупреждение: strtotime () ожидает как минимум 1 параметр, 0 задано в

    if(strtotime($act_until)>strtotime()) {

    if(strtotime($act_until)>strtotime( где параметры? - ошибка )) {
  • Кнопка на регистрацию и вход в wordpress без виджета и плагина, какие варианты?

    kirill270999, Да нет особой разницы +/- строка/символ/букЫвка (смотря как подвинете/оформите). Добавил условие на доступность регистрации как в Вашем примере...
    spoiler

    $items='<ul>';$can_reg=get_option('users_can_register');
    if(is_user_logged_in()){
      //$items.='<li><a href="/wp-admin/">'.__('Ваш профиль','VAB').'</a></li>';//раскомментируйте и отправте пользователя туда куда Вам нужно, если он авторизован
      $items.='<li><a href="'.wp_logout_url().'">'.__('Выйти','VAB').'</a></li>';
    }elseif(!is_user_logged_in()){
      $items.='<li><a href="'.wp_login_url().'">'.__('Вход','VAB').'</a></li>';
    	$items.=!empty($can_reg)?'<li><a href="'.wp_registration_url().'">'.__('Регистрация','VAB').'</a></li>':'';
    }
    echo $items.'</ul>';


    spoiler
    $items='<ul>';$can_reg=get_option('users_can_register');
    if(is_user_logged_in()){
      //$items.='<li><a href="/wp-admin/">'.__('Ваш профиль','VAB').'</a></li>';//раскомментируйте и отправте пользователя туда куда Вам нужно, если он авторизован
      $items.='<li><a href="'.wp_logout_url().'">'.__('Выйти','VAB').'</a></li>';
    }elseif(!is_user_logged_in()){
      $items.='<li><a href="'.wp_login_url().'">'.__('Вход','VAB').'</a></li>';
    	if(!empty($can_reg)){
    		$items.='<li><a href="'.wp_registration_url().'">'.__('Регистрация','VAB').'</a></li>';
    	}
    }
    echo $items.'</ul>';
  • Кнопка на регистрацию и вход в wordpress без виджета и плагина, какие варианты?

    Добавьте к своему меню пункты и решайте сами куда какая ссылка поведет не авторизованного/авторизованного пользователя и что там будет отображаться в зависимости от того авторизован он или нет. add_filter('wp_nav_menu_items'
    ну или отдельно куда нибудь ссылки набросайте из условий
    $items='';
    if(is_user_logged_in()){
      //$items.='<li><a href="/wp-admin/">'.__('Ваш профиль','VAB').'</a></li>';//раскомментируйте и отправте пользователя туда куда Вам нужно, если он авторизован
      $items.='<li><a href="'.wp_logout_url().'">'.__('Выйти','VAB').'</a></li>';
    }
    elseif(!is_user_logged_in()){
      $items.='<li><a href="'.wp_login_url().'">'.__('Вход','VAB').'</a></li>';
      $items.='<li><a href="'.wp_registration_url().'">'.__('Регистрация','VAB').'</a></li>';
    }
    echo $items;
  • Пропадает код изображений со страницы WordPress?

    spoiler
    6058a46f2850c546567896.jpeg
    тоже на месте правда не видно никакого спойлера... Они просто размещены одна за другой
  • Пропадает код изображений со страницы WordPress?

    На месте все

    6054d70982856394876308.jpeg
    Проверил на Фаирфокс, Хром, Яндекс, Опера, Edge, Trident ( IE ), Тор

  • Добавление и работа с полями юзеров?


    Добавление и работа с полями юзеров

    судя по вопросу речь идет о произвольных полях в профиле пользователя, но

    я хочу дать пользователем новые поля

    пользователЕм или пользователЯм?
    одна буква очень сильно меняет направление вопроса и вводит в заблуждение
    Если речь все же о профиле пользователя, то
    if(!function_exists('My_user_fields')){
    	function My_user_fields($user){
    		global $pagenow;if($pagenow=='profile.php'||$pagenow=='user-edit.php'){
    		...//добавляем поля (можно добавить и nonce поля хотя они есть по умолчанию)
    	}}}
    add_action('show_user_profile','My_user_fields');
    add_action('edit_user_profile','My_user_fields');
    	
    if(!function_exists('save_My_user_fields')){
    	function save_My_user_fields($user_id){
    	...//если добавили nonce поля, проверяем их
    	...//проверяем и сохраняем поля get_the_author_meta()
    }}
    add_action('personal_options_update','save_My_user_fields');
    add_action('edit_user_profile_update','save_My_user_fields');
    
    if(!function_exists('My_add_error')){
    	function My_add_error(){
    	...//можем добавить свой эрор (например get_transient (устанавливаем при проверке полей и сохранением set_transient))
    }}}
    add_action('load-user-edit.php','My_add_error');
    add_action('load-profile.php','My_add_error');
    
    //пишем свой акшн функцию и в нужном месте выводим do_action('my_author_info');
    if(!function_exists('my_arhive_author_info')){function my_arhive_author_info(){
    	$author=get_user_by('id',get_query_var('author'));
    	...
    }}
    add_action('my_author_info','my_arhive_author_info',10);
  • Выполнение cron-функций если включена опция в настройках?

    Приветствую. Я делаю так:
    1. отключаю wp-cron define('DISABLE_WP_CRON',true);
    2. запускаю wp-cron через планировщик через каждые, например, пять минут.
    3. пишем акшин функции для крона вордпресс
    пример
    add_action('wp','cron_activation');
    if(!function_exists('cron_activation')){function cron_activation(){
    	$location=get_theme_mod('VAB_Weather_Location');
    	if(!wp_next_scheduled('Weather_next_event')&&!empty($location)){wp_schedule_event(time(),'five_min','Weather_next_event');}
    	if(wp_next_scheduled('Weather_next_event')&&empty($location)){wp_unschedule_hook('Weather_next_event');}
    }}
    add_action('Weather_next_event','do_Weather_next');
    if(!function_exists('do_Weather_next')){function do_Weather_next(){
    	$location=get_theme_mod('VAB_Weather_Location');$location=sanitize_title($location);$VABweather=get_transient($location);
    	if(empty($VABweather)){VAB_Weather::set_trans($location);}}}

    это пример информера погоды через настройки кастомайзера (get_theme_mod). если локация указана в настройках и трансент функция просрочена, то будет выполнен запрос данных на openweathermap с последующей записью данных в трансент функцию (обновление)... ну а уже в самом классе устанавливаю время жизни трансент функции в данном случае 2 часа...

    И там же(в опциях) изменяемый период, в соответствии с которым нужно "кронить"..

    со временем сложно сказать...мало данных....смотря, что вам нужно... можно это время использовать, как время для трансент...
  • Как сделать статическим готовый php скрипт?

    через крон с нужными интервалами с рас кодированием и хранением в базе во временной опции вордпресс (get_transient() set_transient()). При истекшем сроке временной опции крон его запустит асинхронно. Но это не на 100% поможет так как крон запускается при каком - либо действие на сайте. Т.е. кто-то может читать статью и крон незаметно отработает скрипт, либо кто-то будет открывать страницу сайта и крон запустится в этот момент (тут будет Ваше подвисание). Таким образом, если set_transient выставлена на сутки, то это подвисание может появиться, а может и нет, раз в сутки у кого-то из толпы. Но, если есть возможность использовать планировщик виндовс, например (т.е. у Вас, к примеру, сайт на своем серваке), отключить wp-cron (крон вордпресс define('DISABLE_WP_CRON', true);) и запускать его (wp-cron.php) через планировщик виндовс, скажем через каждые пять минут, что я думаю и имел в виду FanatPHP, ...
  • Как убрать циклическую ссылку с логотипа на главной?

    Lawyer-u, потому, что условие is_front_page() && is_home() т.е. условие сработает только если у вас выбрана опция в настройках вордпресс - «На главной странице отображать» -> «Ваши последние записи»
    spoiler

    is_front_page() || is_home()//или is_front_page или is_home

  • Почему долго грузится обратная форма?

    Гена, а Вы гарантируете, что проблема в вордпрес?
  • Как проверить версию WP?

    // $yourObject=get_site_transient('update_core');
    $yourObject=get_option('_site_transient_update_core');
    $array=(array)$yourObject;
    $arrayTwo=(array)$array['updates'][0];
    // echo($arrayTwo['response']);
    echo $arrayTwo['response']=='upgrade'?'(_!_)':'(⌒‿⌒)';

    это уведомление может быть не явным текстом

    в данном примере, прошу прощенья, (_!_) - ж*па
  • Как проверить версию WP?

    По идеи движок обновляется автоматически с последующим уведомлением на мыло админа,

    но

    получить текущую версию (один и возможных вариантов) можете очень просто echo $wp_version; а вот какая актуальная это совсем другое дело...
    загляните вот сюда
    var_dump(get_option('_site_transient_update_core'));
    // get_site_transient('update_core');

    в этом массиве вы найдете так же с успехом текущую версию ( например ["version_checked"]=> string(5) "5.6.1" ),
    но помимо этого увидите ещё немало чего... сравните массив с обновленным движком и не обновленным...
    Для сравнения

    смотрите на ключи response, к примеру
    обновленный движок:
    object(stdClass)#4132 (4) { ["updates"]=> array(1) { [0]=> object(stdClass)#4131 (10) { ["response"]=> string(6) "latest" ["download"]=> string(65) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.6.1.zip" ["locale"]=> string(5) "ru_RU" ["packages"]=> object(stdClass)#4130 (5) { ["full"]=> string(65) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.6.1.zip" ["no_content"]=> string(0) "" ["new_bundled"]=> string(0) "" ["partial"]=> string(0) "" ["rollback"]=> string(0) "" } ["current"]=> string(5) "5.6.1" ["version"]=> string(5) "5.6.1" ["php_version"]=> string(6) "5.6.20" ["mysql_version"]=> string(3) "5.0" ["new_bundled"]=> string(3) "5.6" ["partial_version"]=> string(0) "" } } ["last_checked"]=> int(1613826409) ["version_checked"]=> string(5) "5.6.1" ["translations"]=> array(0) { } }

    не обновленный с версии 5.1.8
    object(stdClass)#4003 (4) { ["updates"]=> array(9) { [0]=> object(stdClass)#4051 (10) { ["response"]=> string(7) "upgrade" ["download"]=> string(65) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.6.1.zip" ["locale"]=> string(5) "ru_RU" ["packages"]=> object(stdClass)#4048 (5) { ["full"]=> string(65) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.6.1.zip" ["no_content"]=> bool(false) ["new_bundled"]=> bool(false) ["partial"]=> bool(false) ["rollback"]=> bool(false) } ["current"]=> string(5) "5.6.1" ["version"]=> string(5) "5.6.1" ["php_version"]=> string(6) "5.6.20" ["mysql_version"]=> string(3) "5.0" ["new_bundled"]=> string(3) "5.6" ["partial_version"]=> string(0) "" } [1]=> object(stdClass)#4002 (10) { ["response"]=> string(7) "upgrade" ["download"]=> string(59) "https://downloads.wordpress.org/release/wordpress-5.6.1.zip" ["locale"]=> string(5) "en_US" ["packages"]=> object(stdClass)#4001 (5) { ["full"]=> string(59) "https://downloads.wordpress.org/release/wordpress-5.6.1.zip" ["no_content"]=> string(70) "https://downloads.wordpress.org/release/wordpress-5.6.1-no-content.zip" ["new_bundled"]=> string(71) "https://downloads.wordpress.org/release/wordpress-5.6.1-new-bundled.zip" ["partial"]=> bool(false) ["rollback"]=> bool(false) } ["current"]=> string(5) "5.6.1" ["version"]=> string(5) "5.6.1" ["php_version"]=> string(6) "5.6.20" ["mysql_version"]=> string(3) "5.0" ["new_bundled"]=> string(3) "5.6" ["partial_version"]=> string(0) "" } [2]=> object(stdClass)#4061 (11) { ["response"]=> string(10) "autoupdate" ["download"]=> string(65) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.6.1.zip" ["locale"]=> string(5) "ru_RU" ["packages"]=> object(stdClass)#4054 (5) { ["full"]=> string(65) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.6.1.zip" ["no_content"]=> bool(false) ["new_bundled"]=> bool(false) ["partial"]=> bool(false) ["rollback"]=> bool(false) } ["current"]=> string(5) "5.6.1" ["version"]=> string(5) "5.6.1" ["php_version"]=> string(6) "5.6.20" ["mysql_version"]=> string(3) "5.0" ["new_bundled"]=> string(3) "5.6" ["partial_version"]=> string(0) "" ["new_files"]=> string(1) "1" } [3]=> object(stdClass)#4053 (11) { ["response"]=> string(10) "autoupdate" ["download"]=> string(63) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.6.zip" ["locale"]=> string(5) "ru_RU" ["packages"]=> object(stdClass)#4052 (5) { ["full"]=> string(63) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.6.zip" ["no_content"]=> bool(false) ["new_bundled"]=> bool(false) ["partial"]=> bool(false) ["rollback"]=> bool(false) } ["current"]=> string(3) "5.6" ["version"]=> string(3) "5.6" ["php_version"]=> string(6) "5.6.20" ["mysql_version"]=> string(3) "5.0" ["new_bundled"]=> string(3) "5.6" ["partial_version"]=> string(0) "" ["new_files"]=> string(1) "1" } [4]=> object(stdClass)#3984 (11) { ["response"]=> string(10) "autoupdate" ["download"]=> string(65) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.5.3.zip" ["locale"]=> string(5) "ru_RU" ["packages"]=> object(stdClass)#4004 (5) { ["full"]=> string(65) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.5.3.zip" ["no_content"]=> bool(false) ["new_bundled"]=> bool(false) ["partial"]=> bool(false) ["rollback"]=> bool(false) } ["current"]=> string(5) "5.5.3" ["version"]=> string(5) "5.5.3" ["php_version"]=> string(6) "5.6.20" ["mysql_version"]=> string(3) "5.0" ["new_bundled"]=> string(3) "5.6" ["partial_version"]=> string(0) "" ["new_files"]=> string(1) "1" } [5]=> object(stdClass)#4005 (11) { ["response"]=> string(10) "autoupdate" ["download"]=> string(65) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.5.2.zip" ["locale"]=> string(5) "ru_RU" ["packages"]=> object(stdClass)#4006 (5) { ["full"]=> string(65) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.5.2.zip" ["no_content"]=> bool(false) ["new_bundled"]=> bool(false) ["partial"]=> bool(false) ["rollback"]=> bool(false) } ["current"]=> string(5) "5.5.2" ["version"]=> string(5) "5.5.2" ["php_version"]=> string(6) "5.6.20" ["mysql_version"]=> string(3) "5.0" ["new_bundled"]=> string(3) "5.6" ["partial_version"]=> string(0) "" ["new_files"]=> string(1) "1" } [6]=> object(stdClass)#4007 (11) { ["response"]=> string(10) "autoupdate" ["download"]=> string(65) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.4.4.zip" ["locale"]=> string(5) "ru_RU" ["packages"]=> object(stdClass)#4008 (5) { ["full"]=> string(65) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.4.4.zip" ["no_content"]=> bool(false) ["new_bundled"]=> bool(false) ["partial"]=> bool(false) ["rollback"]=> bool(false) } ["current"]=> string(5) "5.4.4" ["version"]=> string(5) "5.4.4" ["php_version"]=> string(6) "5.6.20" ["mysql_version"]=> string(3) "5.0" ["new_bundled"]=> string(3) "5.6" ["partial_version"]=> string(0) "" ["new_files"]=> string(1) "1" } [7]=> object(stdClass)#4009 (11) { ["response"]=> string(10) "autoupdate" ["download"]=> string(65) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.3.6.zip" ["locale"]=> string(5) "ru_RU" ["packages"]=> object(stdClass)#4066 (5) { ["full"]=> string(65) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.3.6.zip" ["no_content"]=> bool(false) ["new_bundled"]=> bool(false) ["partial"]=> bool(false) ["rollback"]=> bool(false) } ["current"]=> string(5) "5.3.6" ["version"]=> string(5) "5.3.6" ["php_version"]=> string(6) "5.6.20" ["mysql_version"]=> string(3) "5.0" ["new_bundled"]=> string(3) "5.6" ["partial_version"]=> string(0) "" ["new_files"]=> string(1) "1" } [8]=> object(stdClass)#4069 (11) { ["response"]=> string(10) "autoupdate" ["download"]=> string(65) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.2.9.zip" ["locale"]=> string(5) "ru_RU" ["packages"]=> object(stdClass)#4070 (5) { ["full"]=> string(65) "https://downloads.wordpress.org/release/ru_RU/wordpress-5.2.9.zip" ["no_content"]=> bool(false) ["new_bundled"]=> bool(false) ["partial"]=> bool(false) ["rollback"]=> bool(false) } ["current"]=> string(5) "5.2.9" ["version"]=> string(5) "5.2.9" ["php_version"]=> string(6) "5.6.20" ["mysql_version"]=> string(3) "5.0" ["new_bundled"]=> string(3) "5.6" ["partial_version"]=> string(0) "" ["new_files"]=> string(1) "1" } } ["last_checked"]=> int(1613826187) ["version_checked"]=> string(5) "5.1.8" ["translations"]=> array(0) { } }

    у обновленного первый же ключ со значением latest -> самый последний
    у не обновленного первый же ключ со значением upgrade -> Обновить

    т.е. у обновленного движка в этом ключе не должно быть значение upgrade

    в теории просто проверяем значение, если там upgrade, то намекаем заказчику

    есть ещё вот такая функция: update_nag (она и выводит сообщение в консоли, например, Доступен WordPress 5.6.1! Пожалуйста, обновитесь.), но на фронте её не сможете использовать (хотя может и можно - не вникал, как и впринципе в _site_transient_update_core)
  • Как добавить в меню картинку без плагина?

    trenton,
    add_action('wp_nav_menu_item_custom_fields' - для добавления полей

    а вот, чтобы добавить видео, либо изображение Вам нужно гуглить WordPress медия загрузчик wp_enqueue_media wp_enqueue_media(); (т.е. Вам надо искать скрипт). Добавлять-то Вы через библиотеку желаете, я думаю.
    Может у Вас есть что-то из примеров в закладках?

    примеров в закладках, к сожалению, нет. т.к. тоже в свое время не нашлось... Но могу описать принцип... С учетом, что поля вы добавить и сохранить уже можете
    информация попадается, но пока не попалось примеров с картинкой или видео


    Подключение всех файлов необходимых для использования медиа API WordPress в комментарии или в Google
    что-то похожее на это

    <script type="text/javascript">
    		jQuery(document).ready(function($){
    			function MediaButtonFunction(){
    				$('.MediaButton').click(function(e){
    					e.preventDefault();
    					var Media_type;
    					if($(this).hasClass('Media_Img')){
    						Media_type='image';
    					}else if($(this).hasClass('Media_Audio')){
    						Media_type='audio';
    					}
    					var $upload_button=$(this),custom_uploader=wp.media.frames.file_frame=wp.media({title:'<?php _e('Выбрать/Загрузить медиафайл','VAB');?>',library:{type:[Media_type]},button:{text:'<?php _e('Выбрать','VAB');?>'},multiple:false});
    					custom_uploader.open();
    					custom_uploader.on('select',function(){
    								// метод state() определяет текущее состояние объекта  first() создает новый объект
    						var attachment=custom_uploader.state().get('selection').first().toJSON();///возвращается как объект выделеный файл
    						$upload_button.siblings('textarea').val(attachment.url);});});
    				}
    			MediaButtonFunction();
    		});
    		</script>

    то, что после
    var attachment=custom_uploader.state().get('selection').first().toJSON();

    а именно в этом примере
    $upload_button.siblings('textarea').val(attachment.url);

    у Вас должно быть свое. Все зависит от вашей разметки, которую вы оформляете в меню...

    то, что нагуглил на лету по первым результатам гугла (в этой же статье ссылка на источник внизу)

    или первые 8 минут можете глянуть, если не разберетесь со скриптом (скрипт выше из этого видео), но не в кастом меню

    только в меню Вам надо будет цепляться к идентификатору меню, иначе нажмете на кнопку и откроется столько окон галереи, сколько у Вас пунктов меню...
    Типо

    if(!function_exists('vab_menu_custom_fields')){function vab_menu_custom_fields($item_id,$item){$Noalt=__('Атрибут alt не заполнен','VAB');?>
    <script type="text/javascript">jQuery(document).ready(function($){function MediaButtonFunction(){$('.MediaButton<?php echo$item_id;?>').click(function(e){
    ...
    </script>
    ...
    <input type="button" class="MediaButton<?php echo$item_id;?> Media_Img" value="<?php _e('Библиотека изображений','VAB');?>">
    <input type="button" class="MediaButton<?php echo$item_id;?> Media_Video" value="<?php _e('Библиотека видео','VAB');?>">
    ...
    <?php }}add_action('wp_nav_menu_item_custom_fields','vab_menu_custom_fields',10,2);

    важный момент <?php echo $item_id;?>


    з.ы. Медиа загрузчик нагуглить не сложно - тама заезжена и применима на сегодня. Если нет примера в интернете именно с использованием его в меню, не значит, что оно там не применимо. Включаете поддержку как и с колорпикером
    spoiler
    wp_enqueue_style('wp-color-picker');wp_enqueue_script('wp-color-picker');
    и суете куда Вам только вздумается с небольшими изменениями в зависимости от ситуации...
  • Как добавить в меню картинку без плагина?

    можете даже попробовать использовать встроенный дескрипшин и только add_filter('walker_nav_menu_start_el' + css / js ... все зависит от задачи
  • Как добавить в меню картинку без плагина?

    хоть видео, хоть изображение... гуглите add_action('wp_nav_menu_item_custom_fields' - для добавления полей, add_action('wp_update_nav_menu_item' - для сохранения в базе, add_filter('walker_nav_menu_start_el' - для переопределения (во многих случаях можно обойтись без walker)... ну либо через walker
  • Как запустить скопированный сайт на Wordpress?

    искать-то не пробовали совсем: перенос сайта. Тема заезжена на одном только тостере. Седьмая, например, ссылка по результатам
  • Как запустить на локалке сайт с хостинга?

    Legal Adviser, здесь ссылку ещё чекните в ответе «Панды» (облегчает жизнь для замены всех ссылок в базе).