Intereting Posts
Медиа галерея: удалите кнопку «вставить в сообщение», удерживая кнопку «Вставить галерею» Что лучше: пользовательские поля и пользовательские таксономии с условиями для производительности, масштабируемости и лучшего пользовательского интерфейса Создание собственной папки пользователя при регистрации пользователя Ошибка при получении персонализированного URL-адреса типа эскиза что это значит, когда вы отправляете тему? Обнаружение классов, добавление виджетами и добавление div с помощью Nav Walker Открыть график на странице сообщений Таксономия: почему «with_front» => false НЕ РАБОТАЕТ? Могу ли я установить / вставить WordPress на «одну страницу»? Как удалить тысячи несвязанных изображений? Минимальные требования к размеру для избранного изображения? $ wpdb variable throw this error Вызов функции-члена get_results () для не-объекта в Помощь с фильтром для wp_notify_moderator () Bootstrap js отказывается загружать Как добавить данные пользователя в разные таблицы сразу после регистрации пользователя

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); 

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

Вы в настоящее время размещаете свои правила перезаписи в глобальной области, что означает, что они выполняются, как только ваш файл загружается, что может быть слишком рано. Вместо этого попробуйте добавить их в 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' );