Intereting Posts
add_rewrite_rule () не играет хорошо с дочерними страницами Как заставить wp_enqueue_scripts загружаться в END <head>? hybridauth (интеграция с Google OAuth) и WP Установка размера эскизов по умолчанию и создание нескольких миниатюр Загружать и включать определенные файлы JavaScript для сообщений? Перенаправление входа WordPress в соответствии с ролью пользователя Диалоговое окно «Добавить медиа» не отображает изображения Где я могу создать и изменить новый почтовый шаблон для отправки писем пользователям при комментировании? как объединить пользовательские типы сообщений? Структура тегов не работает Как сделать Facebook разделять изображение featuterd с URL на WordPress Ожидание платформы.linkedin.com Повторяющиеся пользовательские поля WordPress в метабоке Заказ пользовательского типа сообщений несколькими настраиваемыми полями Вывод заголовка объекта Post в виде div-класса с ACF

проблема с настройкой постоянной ссылки программно

Я создал плагин, который программно активирует мою тему. Я хочу установить постоянную ссылку по умолчанию с помощью программирования. Кажется, он не работает с пользовательскими типами сообщений. он хорошо работает со стандартным типом сообщений по умолчанию.

Я попробовал это на крючке admin_footer с приоритетом 9999, но не помог.

Используемый мной код:

add_action('admin_footer','default_permalink',9999); function default_permalink(){ if(get_option('change_permalink')!= 'post_name_permalink') { global $wp_rewrite; $wp_rewrite->set_permalink_structure( '/%postname%/' ); $wp_rewrite->flush_rules(); if(function_exists('flush_rewrite_rules')){ flush_rewrite_rules(true); } //Set default permalink to postname end update_option('change_permalink','post_name_permalink'); } } 

Пожалуйста помоги.

Solutions Collecting From Web of "проблема с настройкой постоянной ссылки программно"

Попытайтесь сделать что-то подобное.

 <?php /* Plugin Name: My Custom Plugin Plugin URI: Description: Author: Version: 1.0 Author URI: */ /* Runs when plugin is activated */ register_activation_hook(__FILE__, 'mcp_install'); /* Runs on plugin deactivation*/ register_deactivation_hook( __FILE__, 'mcp_remove' ); function mcp_install() { //Make sure that .htaccess file is there. add_action('init', 'change_permalinks', 20); //Activate your theme also. } function mcp_remove() { } function mcp_change_permalinks() { global $wp_rewrite; $wp_rewrite->set_permalink_structure('/%postname%/'); $wp_rewrite->flush_rules(); } function mcp_custom_init() { $labels = array( 'name' => 'Books', 'singular_name' => 'Book', 'add_new' => 'Add New', 'add_new_item' => 'Add New Book', 'edit_item' => 'Edit Book', 'new_item' => 'New Book', 'all_items' => 'All Books', 'view_item' => 'View Book', 'search_items' => 'Search Books', 'not_found' => 'No books found', 'not_found_in_trash' => 'No books found in Trash', 'parent_item_colon' => '', 'menu_name' => 'Books' ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'book' ), 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, 'menu_position' => null, 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ) ); register_post_type( 'book', $args ); } add_action( 'init', 'mcp_custom_init', 10); 

Правила rewrite для пользовательских типов сообщений контролируются их регистрационными аргументами (см. Переписать в register_post_type() ) и, вероятно, не следует изменять извне.

Также обратите внимание, что правила перезаписи для каждой загрузки страницы крайне вредны для производительности. Это нужно делать только тогда, когда они меняются, например, при активации вашего плагина.

сделайте что-то вроде этого:

 function setup_permalinks_by_default() { global $wp_rewrite; $wp_rewrite->set_permalink_structure('/%postname%/'); $wp_rewrite->flush_rules(); } add_action('after_switch_theme', 'setup_permalinks_by_default') 

но это – если я не ошибаюсь – не позаботится о создании файла .htaccess

редактировать:
пропустил часть о типе персонализированного сообщения; вероятно, лучше всего сделать это при регистрации типа пользовательского типа, например, rarst;

еще одна возможность может заключаться в использовании add_rewrite_rule и добавлении этой функции выше, больше информации здесь:
http://codex.wordpress.org/Rewrite_API/add_rewrite_rule
http://wp.tutsplus.com/tutorials/creative-coding/the-rewrite-api-the-basics/

изменить: посмотреть комментарий milos