Intereting Posts
Как указать число в параметре wp_dropdown_pages ()? Какое действие вызывает обновление метаданных? Нет фильтра кода при переключении с html на визуальный редактор, как? Msgstr "Невозможно redeclare cpt_reg_tax ()" из-за functions.php Как получить доступ к параметрам инфраструктуры Redux в интерфейсе Скопировать папку в другую папку с помощью файловой системы WP Зачем нужны поля адреса пользователя Изменение глобальных переменных – инициализация в index.php, но использование в header.pho Как исключить 3 последних сообщения категории в query_posts Измените woocommerce весовой вес продукта на основе своей категории продукта или тегов? Почему мой запрос не запускается с подготовкой Создайте сеть блогов с помощью WordPress 3 Шаблон страницы обращается к неправильным сообщениям? Как отобразить категорию продукта в специально разработанной теме? Пользовательские условия таксономии в меню ведут к какой странице?

Использую ли я функцию flush_rewrite_rules в нужном месте?

Привет, друзья

Я пишу панель администратора для моей новой плагиновой базы WordPress в API-интерфейсах WordPress. Я определяю поле для изменения пользовательского пула сообщений с этой панели администратора. После изменения пользовательского slug на некоторых сайтах WordPress мы получаем 404 ошибки для этих URL-адресов CPT. По этой причине я использую функцию flush_rewrite_rules () перед отображением пули, зарегистрированной в панели администратора. Вы можете увидеть коды ниже. Теперь я хочу, чтобы вы сказали мне, я использую функцию flush_rewrite_rules в нужном месте?

function display_clink_main_slug(){ // validate and update clink_main_slug value $clink_main_slug_option = get_option('clink_main_slug'); if( $clink_main_slug_option ){ $clink_main_slug_option = str_replace(' ', '-', $clink_main_slug_option); // Replaces all spaces with hyphens. $clink_main_slug_option = preg_replace('/[^A-Za-z0-9\-]/', '', $clink_main_slug_option); // Removes special chars. update_option( 'clink_main_slug', $value = $clink_main_slug_option ); $clink_main_slug_option = get_option('clink_main_slug'); }elseif( empty($clink_main_slug_option ) ){ update_option( 'clink_main_slug', $value = 'clink' ); $clink_main_slug_option = get_option('clink_main_slug'); } flush_rewrite_rules(); $clink_slug_structure = get_bloginfo('url') . '/' . $clink_main_slug_option . '/link-name'; ?> <?php echo $clink_main_slug_option; ?> <input type="text" name="clink_main_slug" id="clink_main_slug" value="<?php echo $clink_main_slug_option; ?>" /> <p class="description clink-description"><?php _e('Enter the clink plugin base slug for links. In default it set to <code>clink</code>','aryan-themes'); ?></p> <p class="description clink-description"><?php printf( __( 'Current links structure is like: <code>%s</code>', 'aryan-themes' ) , $clink_slug_structure ); ?></p> <?php } 

Solutions Collecting From Web of "Использую ли я функцию flush_rewrite_rules в нужном месте?"

Учитывая WordPress Codex flush_rewrite_rules

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

Я бы рекомендовал вам использовать его следующим образом:

Пример-1. ТОЛЬКО РАЗВИТИЕ! Слить с помощью переменной:

 if(isset($_GET['secret_variable'])){ flush_rewrite_rules(); } 

Затем просто вызовите http://foo.com/?secret_variable=1, чтобы очистить его.

Пример-2. Объявление новых post_type и post_type WordPress

 function custom_post_type_function(){ $args = array(); register_post_type('custom_post_type', $args); } function custom_flush_rules(){ flush_rewrite_rules(); } add_action('after_theme_switch', 'custom_flush_rules'); add_action('init', 'custom_post_type_function'); 

Кроме того, это [где, когда, и как правильно очищать правила перезаписи в рамках плагина?] Может помочь для лучшего понимания