Intereting Posts
Добавление хороших параметров запроса Ошибка Nonce в IE Pagination не работает над пользовательским запросом внутри шаблона пользовательской домашней страницы. Проблема с wp_insert_post () Как разместить WordPress в скрытом домене через обратный прокси? Таксономии, ограничивают редактирование и создание условий? Получить персонализированную запись с идентификатором Всегда ли это лучшая практика для развязки Frontend из области администрирования при разработке приложения WordPress? W3 Total Cache плагин хроническое сообщение Поиск по всем вопросам и проблемам с обновлением WP 3.7 WordPress список дочерних страниц пользовательского типа сообщения Получить текущую конечную точку WooCommerce не работает Изменение размера изображения – TimThumb vs convert on upload? Создать новую базу данных через статический код страницы медиа-загрузчик вставить в сообщение не вставляет

permastruct для персонализированного типа сообщения, не работающего в одном из четырех случаев

Я создал пользовательские постоянные ссылки для различных пользовательских типов сообщений на веб-сайте. Все они работали. До недавнего времени я добавил еще один, который я не могу работать 8-о. Структура «компания» не работает и дает 404 ..

Может ли кто-нибудь обнаружить недостаток в моем мышлении или поставить меня на правильный путь? Я должен забывать что-то очень глупое 😉

О, я также перешел на страницу настроек постоянной ссылки, чтобы очистить старые постоянные ссылки / кег постоянной ссылки / …

Вот код для настраиваемой структуры:

  // переписать переписать
 глобальный $ wp_rewrite;

 $ wp_rewrite-> add_rewrite_tag ("% merkname%", '([^ /] +)', "merk =");
 $ wp_rewrite-> add_permastruct ('merk', '/ merken /% merkname%', false);

 $ wp_rewrite-> add_rewrite_tag ("% modelname%", '([^ /] +)', "model =");
 $ wp_rewrite-> add_permastruct ('model', '/ merken /% merkname% /% modelname%', false);

 $ wp_rewrite-> add_rewrite_tag ("% carname%", '([^ /] +)', "car =");
 $ wp_rewrite-> add_permastruct ('car', '/ merken /% merkname% /% modelname% /% carname%', false);

 $ wp_rewrite-> add_rewrite_tag ("% companyname%", '([^ /] +)', "company =");
 $ wp_rewrite-> add_permastruct ('company', '/ company /% companyname%', false);

 функция kw_custom_permalink ($ permalink, $ post, $ leavename) {

     if (''! = $ permalink &&! in_array ($ post-> post_status, array ('draft', 'pending', 'auto-draft'))) {

         $ Merkname = '';
         $ ModelName = '';
         $ Carname = '';
         $ НазваниеКомпании = '';

         if (strpos ($ permalink, '% merkname%')! == false) {
             $ merkname = $ post-> post_name;
         }

         if (strpos ($ permalink, '% modelname%')! == false) {
             $ merkpost = get_post (get_post_meta ($ post-> ID, "merk", true));
             $ merkname = $ merkpost-> post_name;
             $ modelname = $ post-> post_name;
         }

         if (strpos ($ permalink, '% carname%')! == false) {
             $ merkpost = get_post (get_post_meta ($ post-> ID, "_car_merk", true));
             $ merkname = $ merkpost-> post_name;

             $ modelpost = get_post (get_post_meta ($ post-> ID, "_car_model", true));
             $ modelname = $ modelpost-> post_name;

             $ carname = $ post-> post_name;
         }

         if (strpos ($ permalink, '% companyname%')! == false) {
             $ companyname = $ post-> post_name;
         }

         $ permalink = str_replace (
             массив (
                 $ Leavename?  '': '% postname%',
                 '% Post_id%',
                 '% Merkname%',
                 '%название модели%',
                 '% Carname%',
                 '%название компании%',
                 $ Leavename?  '': '% pagename%',
             ), 
             массив (
                 $ Post-> POST_NAME,
                 $ Post-> ID,
                 $ Merkname,
                 $ ModelName,
                 $ Carname,
                 $ НазваниеКомпании,
                 $ Post-> POST_NAME,
             ), 
             $ Постоянная ссылка
             );

     }
     return $ permalink;
 }
 add_filter ('post_type_link', 'kw_custom_permalink', 10, 3); 

Вы в настоящее время размещаете свои правила перезаписи в глобальной области, что означает, что они выполняются, как только ваш файл загружается, что может быть слишком рано. Вместо этого попробуйте добавить их в init hook или переписать их вместо фильтра generate_rewrite_rules , например:

 add_action('generate_rewrite_rules', 'themes_dir_add_rewrites'); function themes_dir_add_rewrites() { $theme_name = next(explode('/themes/', get_stylesheet_directory())); global $wp_rewrite; $new_non_wp_rules = array( 'css/(.*)' => 'wp-content/themes/'. $theme_name . '/css/$1', 'js/(.*)' => 'wp-content/themes/'. $theme_name . '/js/$1', 'images/wordpress-urls-rewrite/(.*)' => 'wp-content/themes/'. $theme_name . '/images/wordpress-urls-rewrite/$1', ); $wp_rewrite->non_wp_rules += $new_non_wp_rules; } 

Взято из Хункиата

Или

 function josfaber_add_rules() { global $wp_rewrite; $wp_rewrite->add_rewrite_tag("%merkname%", '([^/]+)', "merk="); $wp_rewrite->add_permastruct('merk', '/merken/%merkname%', false); $wp_rewrite->add_rewrite_tag("%modelname%", '([^/]+)', "model="); $wp_rewrite->add_permastruct('model', '/merken/%merkname%/%modelname%', false); $wp_rewrite->add_rewrite_tag("%carname%", '([^/]+)', "car="); $wp_rewrite->add_permastruct('car', '/merken/%merkname%/%modelname%/%carname%', false); $wp_rewrite->add_rewrite_tag("%companyname%", '([^/]+)', "company="); $wp_rewrite->add_permastruct('company', '/company/%companyname%', false); } add_action( 'init', 'josfaber_add_rules' );