Ответы пользователя по тегу WordPress
  • Как убрать неразрывные пробелы в Wordpress (не в TinyMCE)?

    @Gamelot
    Программист php
    Опубликуйте ссылку тестовой страницы, пожалуйста
    Ответ написан
    1 комментарий
  • Вывод стандартных записей Wordpress на кастомной странице?

    @Gamelot
    Программист php
    рекомендуется использовать класс WP_Query(). напишите аргументы класса $args, которые Вы используете при создании объекта этого класса!

    стандартный цикл:

    $args = array(
    	'posts_per_page' => 5,
    	'orderby' => 'comment_count'
    );
    
    $query = new WP_Query( $args );
    
    if ( $query->have_posts() ) {
    	while ( $query->have_posts() ) {
    		$query->the_post();
    
    		echo '<li>'. get_the_title() . '</li>';
    		
    	}
    }
    else {
    }
    wp_reset_postdata();
    Ответ написан
    Комментировать
  • Desc вылазит за блок?

    @Gamelot
    Программист php
    возможно через фильтры add_filter() или экшены add_action в коде, к примеру, в functions.php, заполняются поля description или title.

    по идее, это мета-поля записи. они прописываются для каждой страницы с ID в таблицу wp_postmeta. залезьте в базу данных, в эту таблицу, посмотрите, что там записано.
    Ответ написан
    Комментировать
  • Как заполненные данные формы конвертировать в CSV и при submit отправить на почту с помощью Wordpress?

    @Gamelot
    Программист php
    Надо написать обработчик формы:
    • сформировать из переменных заполненной формы $_REQUEST['a'], $_REQUEST['b'], $_REQUEST['c'] переменную тела CSV типа $str = "123;334;444;555\n222;333;444;55\n";
    • записать ее в файл. самое легкое через file_put_contents()
    • отправьте письмо через wp_mail(), сделав вложение attachment к письму - Ваш записанный файл
    Ответ написан
    Комментировать
  • В WordPress contact 7 form пропадает id у формы, почему так может быть?

    @Gamelot
    Программист php
    запишите и выложите скринкаст. просто так по скриншоту Вам я думаю никто не ответит, что происходит.
    Ответ написан
    Комментировать
  • Failed to load resource: the server responded with a status of 500 () - что оно пытается загрузить?

    @Gamelot
    Программист php
    Возможно у Вас включен на сайте плагин-фаерволла-защитника или запрещен доступ через хуки к WP-JSON (файл xmlrpc.php)
    Ответ написан
    Комментировать
  • Как вывести поле ACF в настройках экрана админки?

    @Gamelot
    Программист php
    Доступные фильтры:

    bulk_actions-edit-post: Post type ‘post’ edit screen
    bulk_actions-edit-page: Post type ‘page’ edit screen
    bulk_actions-edit-: Custom post type edit screen
    bulk_actions-edit-: Custom taxonomy edit screen
    bulk_actions-edit-comments: Comments list screen
    bulk_actions-plugins: Plugins list screen
    bulk_actions-users: Users list screen
    bulk_actions-upload: Media library list (only works in list view, not grid view)

    Примеры:

    Добавляет пункт меню:
    <?php
    add_filter('bulk_actions-edit-post', function($bulk_actions) {
    	$bulk_actions['change-to-published'] = __('Change to published', 'txtdomain');
    	return $bulk_actions;
    });


    Обработчик пункта меню:
    add_filter('handle_bulk_actions-edit-post', function($redirect_url, $action, $post_ids) {
    	if ($action == 'change-to-published') {
    		foreach ($post_ids as $post_id) {
    			wp_update_post([
    				'ID' => $post_id,
    				'post_status' => 'publish'
    			]);
    		}
    		$redirect_url = add_query_arg('changed-to-published', count($post_ids), $redirect_url);
    	}
    	return $redirect_url;
    }, 10, 3);


    Вывод уведомления при выборе действия.
    add_action('admin_notices', function() {
    	if (!empty($_REQUEST['changed-to-published'])) {
    		$num_changed = (int) $_REQUEST['changed-to-published'];
    		printf('<div id="message" class="updated notice is-dismissable"><p>' . __('Published %d posts.', 'txtdomain') . '</p></div>', $num_changed);
    	}
    });


    Пример обработчика пункта меню
    add_filter('handle_bulk_actions-edit-post', function($redirect_url, $action, $post_ids) {
    	if ($action == 'mark-as-verified') {
    		foreach ($post_ids as $post_id) {
    			update_post_meta($post_id, 'verified', '1');
    		}
    		$redirect_url = add_query_arg('mark-as-verified', count($post_ids), $redirect_url);
    	}
    	return $redirect_url;
    }, 10, 3);


    на картинке изображен процесс массового редактирования постов:

    651123c47d355715410900.gif

    куда Вы тут хотите встроить текстовое поле для массового редактирования?

    слева от кнопки Apply можно встроить текстовое поле. я это делал на JS. создавал скрипт для админов на JS и подключал его на сайте через functions.php (Enqueue Scripts) . текстовое поле будет находиться внутри html-формы для массового редактирования с выбранным действием.

    И можно его значение обработать в хуке-обработчике действия - выполнить функцию update_field() для Вашего поля ACF в редактируемом посте.
    Ответ написан
    Комментировать
  • Ошибка wordpress: /wp-includes/class-wp.php on line 785?

    @Gamelot
    Программист php
    Замечу, что Вы не написали, что конкретно за ошибка. Включите переменные WP_DEBUG - поставьте TRUE и WP_DEBUG_LOG тоже в TRUE в корне сайта в папке wp-config.php.

    В папке wp_content/ будет создаваться теперь файл debug.log, посмотрите в нем ошибку при новой загрузке страницы сайта с ошибкой и напишите сюда.
    Ответ написан
    Комментировать
  • Как правильно вывести acf?

    @Gamelot
    Программист php
    для вывода товаров используйте цикл WP_Query. по сути все поля acf - это мета-поля поля или custom post fields.

    https:// wp-kama.ru /function/wp_query#meta_query

    $args = [
    'post_type' => 'product',
    'post_status' => 'publish',
    'meta_query' => [
    	'book_color' => [
    		'key'     => 'color',
    		'value'   => 'blue',
    		'compare' => 'NOT LIKE',
    	],
    ],
    ];


    передавайте в args индекс массива - meta query c нужными параметрами запроса и получайте на выходе WP_Query список постов.

    the_sub_field("new_price") - выводит значения полей повторителя, заведенных Вами в админке

    если поля acf вы записали в посте или странице, посмотрите в базе данных в таблице wp_postmeta по ключу ID - номер поста для значения meta_key - meta_value и Вам станет понятно, какая структура полей acf в базе данных. если Вы к опциям acf приделали, то посмотрите строки с полями acf в таблице wp_options
    Ответ написан
    Комментировать
  • Почему выпадающее меню в вордпресс не видно?

    @Gamelot
    Программист php
    Очевидно, потому что не влезает в размер окна браузера. Попробуйте вверх поднять последний пункт Пациентам.
    Ответ написан
    Комментировать
  • Как редактировать этот блок в wordpress с кнопкой?

    @Gamelot
    Программист php
    Вопрос слишком общий. Если у Вас сайт сделан на конструкторе типа Elementor, отредактируйте шапку или страницу в нем. Либо попробуйте скопировать локально себе на компьютер папку темы /wp-content/themes/yourtheme, и в текстовом редакторе типа SublimeText4 или NotePad++, VSCode в поиске по файлам, указав локальную директорию с темой, ищите в папке текст "ежедневный прием".
    Ответ написан
    Комментировать
  • Как разделить текст записи в wordpress на отдельные блоки?

    @Gamelot
    Программист php
    Работайте с переменной, содержащей контент.
    И с ней уже делайте, что хотите.

    Как вариант, что-то типа такого:

    $content = striptags(get_the_content());
    echo '<div class="class1">'.mb_substr($content, 0, 155).'</div>';
    echo '<div class="class2">'.mb_substr($content, 156).'</div>';
    Ответ написан
    Комментировать
  • Перестали работать ссылки для записей в Wordpress. Что делать?

    @Gamelot
    Программист php
    Последовательно отключите плагины один-за-одним, не удаляя их. И каждый раз смотрите, восстановилась ли работа. Также в папке /wp-content/themes/theme_name посмотрите файл functions.php - нет ли там хуков add_filter() или add_action() - если есть, то не влияют ли они на поведение ссылок.
    Ответ написан
    Комментировать
  • Как получить файлы из медиафайлов по категории?

    @Gamelot
    Программист php
    Вообще, я всегда думал, что категории - это для визуальных (имеющих UI в админке) постов. Просто чисто технически - есть категории, и еще есть таксономии. А так, я никогда не видел, чтобы категории к картинкам-приложениям приделывали.
    Ответ написан
    Комментировать
  • Как создать слайдер WordPress Elementor?

    @Gamelot
    Программист php
    Вы можете 100% использовать такой - https://www.sliderrevolution.com/
    Единственное, я точно не скажу, есть ли там поворот слоев. Но слою можно установить css класс, а в стилях прописать свойство transform: rotate(-90deg);

    Для вставки используйте shortcode в блоке text или специальном компоненте для шорткодов.
    Ответ написан
    Комментировать
  • Почему гости сайта не видят блок upsell, а админ видит?

    @Gamelot
    Программист php
    Надо проверить шаблоны страницы, в которой у Вас стоит вызов этой функции. Дело либо в шаблоне страницы, в вызове этой страницы, либо внутри этой функции.

    Вот исходный код для Woo версии 6.7.0. Видим, что для вывода используется шаблон single-product/up-sells.php. Нужно заглянуть в него как в папке /wp-content/plugins/woocommerce/templates, так и в теме /wp-content/themes/theme_name/woocommerce/.

    Еще Вы можете видеть вызовы хуков - apply_filters(). В них тоже может быть проблема.

    Почему-то в коде я не вижу блок - if ( $upsells ) : Видимо, у Вас другая версия.

    function woocommerce_upsell_display( $limit = '-1', $columns = 4, $orderby = 'rand', $order = 'desc' ) {
    	global $product;
    
    	if ( ! $product ) {
    		return;
    	}
    
    	// Handle the legacy filter which controlled posts per page etc.
    	$args = apply_filters(
    		'woocommerce_upsell_display_args',
    		array(
    			'posts_per_page' => $limit,
    			'orderby'        => $orderby,
    			'order'          => $order,
    			'columns'        => $columns,
    		)
    	);
    	wc_set_loop_prop( 'name', 'up-sells' );
    	wc_set_loop_prop( 'columns', apply_filters( 'woocommerce_upsells_columns', isset( $args['columns'] ) ? $args['columns'] : $columns ) );
    
    	$orderby = apply_filters( 'woocommerce_upsells_orderby', isset( $args['orderby'] ) ? $args['orderby'] : $orderby );
    	$order   = apply_filters( 'woocommerce_upsells_order', isset( $args['order'] ) ? $args['order'] : $order );
    	$limit   = apply_filters( 'woocommerce_upsells_total', isset( $args['posts_per_page'] ) ? $args['posts_per_page'] : $limit );
    
    	// Get visible upsells then sort them at random, then limit result set.
    	$upsells = wc_products_array_orderby( array_filter( array_map( 'wc_get_product', $product->get_upsell_ids() ), 'wc_products_array_filter_visible' ), $orderby, $order );
    	$upsells = $limit > 0 ? array_slice( $upsells, 0, $limit ) : $upsells;
    
    	wc_get_template(
    		'single-product/up-sells.php',
    		array(
    			'upsells'        => $upsells,
    
    			// Not used now, but used in previous version of up-sells.php.
    			'posts_per_page' => $limit,
    			'orderby'        => $orderby,
    			'columns'        => $columns,
    		)
    	);
    }
    Ответ написан
  • Как отредактировать страницу каталога Wordpress Woocommerce?

    @Gamelot
    Программист php
    При установке woo может создаваться страница Магазин. Обычно у нее адрес /shop
    На этой странице может размещаться либо шорткод (описаны здесь - https://woocommerce.com/document/woocommerce-short...), либо компонент элементора для работы с woo.

    Посмотреть страницу каталога магазина на woo можно также в его настройках. Там, где прописываеся url корзины, checkout и др.
    Ответ написан
    Комментировать
  • Конфликт при создании post type wordpress?

    @Gamelot
    Программист php
    Приведите код конфликтующего плагина с функцией register_post_type(). И, возможно, будет более понятно, в чем дело.
    Ответ написан
    Комментировать
  • Почему выйдя из админки WP перестает работать запрос?

    @Gamelot
    Программист php
    Через WP_Query вы создаете петлю-запрос в Wordpress к базе данных на выборку определенного типа опубликованных постов 'post_type' => $postType. Кроме этого логическим условием 'relation' => 'AND' проверяется одновременное задание разных мета-полей (свойств) постов - 'meta_query'. Авторизация с этим никак не связана напрямую и в парсинг $query = new WP_Query($args); ее прямо передавать не требуется.

    Авторизация просто отделяет зарегистрированных юзеров (и админов) от обычных посетителей сайта.
    Ответ написан
    Комментировать