Может кто подскажет как реализовать?
Запрограммируйте движок Вашего сайта так, чтобы следующие действия происходили автоматически 1 раз в сутки:
Получить токен доступа с помощью http-запроса методом POST:
POST /Token HTTP/1.1
Host: https://api.ozon.ru/AuthServer
Content-Type: application/x-www-form-urlencoded
grant_type=password&username={Ваша_эл._почта}&password={Ваш_пароль}
Внимание: токен доступа валиден 1 час, рефреш токен - 1.5 часа.
Для обновления токена доступа используйте http-запрос методом POST:
grant_type=refresh_token&refresh_token={Полученный_ранее_рефреш_токен}
Здравствуйте. На сайте wordpress настроены постоянные ссылки, подскажите как правильно сделать 301 редирект с базы магазина woocommerce https: //site.ru/shop/ на https: //site.ru так как они идентины. Испоьзуется апач. Все адреса внутри раздела /shop/ должны остаться и обрабатываться как раньше. Пробовал разные варианты происходит зацикливание https ://site.ru/shop/shop/shop/shop/shop/ итд
Проблема решилась установкой плагина WP Translitera, вместо Cyr to Lat enhanced. Почему то ярлык для атрибута он не мог создать, прописывал цифру названия ярлыка одну и туже, поэтому и не мог создать новый атрибут и для всех товаров вставлял один и тот же. Как то так:)
Вы весь код который я выкладывал смотрели? Там, вроде, и есть не коробочное решение для блога, а я попросил, если это возможно, поправить под магазин WC.
А товары с ИМ удаляются рано или поздно, пример тому ozon.ru. Потому что если хранить все товары, которых уже никогда не будет, со временем в вашем магазине будет сложно найти товар который есть в наличии
В урлах содержится много схожей информации похожих товаров, это могут быть, например, разные кастрюли одной фирмы, или какие-нибудь дата-кабели разной длины, и по ним можно формировать похожие товары. К тому же я уже говорил, что есть плагин, который это красиво делает, только отправляет 301 редиректом с 404-ой, а мне посоветовали тут оставлять 404-ую, поэтому он не подходит. Так что этот ваш максимум - вовсе не максимум.
Вот вам урлы:
Урл то остается, и по урлу уже определяются похожие записи (я так думаю, может это и не так). Есть плагин такой, но он по 301 редиректу с 404-ой перенаправляет на похожий товар. А мне на форуме написали что лучше 404 страница.
Вот что пишут об этом на сайте где я взял вышеприведенные коды:
Лучшее, что мы можем сделать для посетителя, попавшего на 404 страницу — попытаться определить, что он искал и предложить максимально похожий материал. Информация о запрошенном URL хранится в поле $wp->request. Мы можем распарсить эту строку и попробовать найти похожие записи по данным в post_name. Если это не даст результатов, то можно попробовать обычный поиск по содержимому записей. Если и это не даст результаты, мы всегда можем показать свежие записи в качестве альтернативы.
<!-- Did you mean --><?php$args = array( 'post_type' => 'product', 'posts_per_page' => 5);$query = new WP_Query($args); //query posts by slugif (!empty($query->posts)) :?> <h4>Were you looking for the one of the following pages?</h4> <ul class="posts-list"> <?php echo frl_list_posts($query->posts);?> </ul><?php endif;?>
Спасибо, работает. Но только он выдает последние опубликованные товары. Подправьте пожалуйста еще похожие товары.
'post_type' => 'post',
'post_type' => 'any',
'post_type' => 'product'
Пробовал, не работает.
Да, этот слаг и применяется в коде выше, надо только подкорректировать его под вывод товаров, а не записей блога. У меня, к сожалению нет навыков php. Поэтому и прошу подсказки. Я бы с удовольствием оставлял товары, которых нет в наличии, но не позволяет место на диске, так как товаров очень много, поэтому они пока удаляются.
Этот вариант не подходит, скорее всего потому, что похожие страницы подбираются по тайтлу, категории или меткам - как-то так. На 404-ой, есть только урл, по которому можно вести поиск похожих товаров.
Для наглядности кода дублирую предыдущий вопрос.
Нашел такой вариант, но товары не выводит, выводит только статьи блога, может подскажете что подправить?
Создадим несколько вспомогательных функций. Их можно объявить в файле functions.php вашей темы или непосредственно в начале файла 404.php.
function frl_get_requested_slug(){global $wp;$q = $wp->request;$q = preg_replace("/(.*)(html|htm|php|asp|aspx)$/","",$q);$parts = explode('/', $q);$q = end($parts);return $q;}
Функция frl_get_requested_slug возвращает содержание запрошенного URL, используя глобальную переменную $wp и регулярное выражение. Предполагается, что сайт использует постоянные ссылки.
function frl_list_posts($posts){if(empty($posts))return '';$list = array();foreach($posts as $cpost) {$title = apply_filters('the_title', $cpost->post_title);$url = get_permalink($cpost);$list[] = "<li><a href='{$url}'>{$title}</a></li>";}return implode('', $list);}
Функция frl_list_posts помогает быстро вывести список ссылок на записи, в качестве аргумента — массив объектов WP_Post.
function frl_load_error_style(){if(!is_404())return;$src = get_template_directory_uri().'/css/error-style.css';wp_enqueue_style('error-style', $src);}
Функция frl_load_error_style загружает стили для шаблона 404 страницы, .css файл находится в подпапке /css директории вашей темы.Код шаблона будет состоять из 4 частей: сообщение об ошибке, поиск, свежие записи, контактная информация и форма поиска.Сообщение об ошибках:
<!-- Message --><h2>404: Page not found</h2><div class="message not-found"><p>Sorry, unfortunately, we could not find the requested page.</p><p>Let's find the information you need.</p></div>
Поиск похожих записей:
<!-- Did you mean --><?php$q = frl_get_requested_slug();$args = array('post_type' => 'any','post_status' => 'publish','name' => $q,'posts_per_page' => 5);$query = new WP_Query($args); //query posts by slugif(empty($query->posts)){ //search for posts$q = str_replace('-', ' ', $q);$args = array('post_type' => 'any','post_status' => 'publish','s' => $q,'posts_per_page' => 5);$query->query($args);}if(!empty($query->posts)):?><h4>Were you looking for the one of the following pages?</h4><ul class="posts-list"><?php echo frl_list_posts($query->posts);?></ul><?php endif;?>
Свежие записи:
<!-- Recent content --><?php$args = array('post_type' => 'post','post_status' => 'publish','posts_per_page' => 5);$query->query($args);if(!empty($query->posts)):?><h4>Why not take a look through the most recent posts?</h4><ul class="posts-list"><?php echo frl_list_posts($query->posts);?></ul><?php endif;?>
Контактные данные и форма для поиска:
<!-- Search options --><?php $home_link = home_url(); ?><h4>No good?</h4><p>Please use the search form to try again or start browsing from the <a href='<?php echo $home_link;?>'>Homepage</a>.</p><p>If you need further assistance please don't hesitate to contact at <em>info@domain.com</em>.</p><?php get_search_form();?>