Intereting Posts
Почему wp_links все еще существует в схеме db? Как получить персонализированное сообщение типа menu_name? Как импортировать изображения из URL-адреса в своем сообщении? Как заставить WP использовать EST Timezone Есть ли способ подключиться к странице обновления ядра для пользовательских сообщений? Как добавить параметры экрана, такие как этот Могу ли я создать шаблон страницы, использовать его один раз, а затем скрыть / удалить параметр, чтобы использовать его снова? Сохраните и пользователь представите данные из формы и отобразите их в wp-сервере Как создать эскизы с фиксированной шириной, поэтому все они будут иметь одинаковую ширину? Добавление определенной категории сообщений между сообщениями в цикле Как получить последнюю страницу (а не сообщение) пользователя и отобразить содержимое Отправка пользовательских типов сообщений с настраиваемыми полями из формы Front-end Возврат категории / название категории из категории ID Замените логотип заголовка администратора изображением Категория WordPress, должность категории и отдельная должность

Пользовательские постоянные ссылки с Галерея NextGEN

Я установил mypresspress permlink в /%category%/%postname% теперь я использую Gallery Nextgen, поэтому, когда у меня есть галерея на странице, это будет что-то вроде /cat/page?gallery=10 Я хочу сделать что-то вроде cat/page/gallery id/ i пробовал много с wp_rewrite … но не повезло … любая помощь?

это то, что я тестирую .. это не мой код, который он предоставил от wordpress … я поставил бы все на свое место, когда я нашел способ … так что не волнуйтесь, я не буду flushRules на init … большое спасибо

 add_filter('rewrite_rules_array','wp_insertMyRewriteRules'); add_filter('query_vars','wp_insertMyRewriteQueryVars'); add_filter('init','flushRules'); // Remember to flush_rules() when adding rules function flushRules(){ global $wp_rewrite; $wp_rewrite->flush_rules(); } // Adding a new rule function wp_insertMyRewriteRules($rules) { $newrules = array(); //i don't know what should i put here $newrules[''] = ''; return $newrules + $rules; // } // Adding the id var so that WP recognizes it function wp_insertMyRewriteQueryVars($vars) { array_push($vars, 'id'); return $vars; } 

Вы посмотрели API перезаписи ? Может быть, это может решить вашу проблему?
Если вы используете API перезаписи, то вам, вероятно, придется включить функцию перезаписи NextGen.

С дополнительной конечной точкой

Поскольку вы хотите добавить что-то в конец каждого правила перезаписи почты / страницы, вы, вероятно, можете просто добавить конечную точку перезаписи . Это регулярные выражения формы /[endpoint_name](/[optional_extra_stuff])? которые добавляются к уже сгенерированным правилам для страниц, сообщений, архивов, …

Вы определяете, какие структуры вы хотите добавить, установив маску конечной точки . Это битовая маска, поэтому вы можете комбинировать разные группы, используя | оператора, например: EP_PERMALINK | EP_PAGES EP_PERMALINK | EP_PAGES будет соответствовать каждой странице и каждой постоянной ссылке (полный пост и дата-архивы). Список конечных точек по умолчанию можно найти в верхней части wp-includes/rewrite.php .

Следующий код добавит /gallery(/(.*))? к существующим правилам перезаписи для страниц, сообщений и архивов на основе даты (по какой-то причине они генерируются дважды, один раз в EP_PERMALINK и один раз в EP_DATE ):

 add_filter( 'init', 'wpse4498_init' ); function wpse4498_init() { add_rewrite_endpoint( 'gallery', EP_PERMALINK | EP_PAGES ); } 

При явных новых правилах перезаписи

Вы также можете сделать это явно, что может дать вам больше контроля над сгенерированными правилами.

Правило перезаписи очень легко: возьмите правило общего сообщения (.+?)/([^/]+) ( category/pagename ) и добавьте свою структуру галереи. NextGEN всегда добавляет свои поисковые вары не только, когда разрешены постоянные ссылки, поэтому мы можем просто использовать gallery var:

 '(.+?)/([^/]+)/gallery/([0-9]{1,})/?$' => 'index.php?category_name=$matches[1]&name=$matches[2]&gallery=$matches[3]' 

Размещение вашего дополнительного правила перезаписи сложно. Поскольку ваша структура постоянной ссылки есть /%category%/%postname%/ вы имеете подробные правила перезаписи и не можете поместить общий (.+?)/([^/]+) Вверх: ваши страницы перестанут работать. Вы не можете поставить его внизу, так как правила вложения довольно общие и будут соответствовать URL-адресу до того, как он достигнет вашего правила. Я думаю, что лучше всего добавить его с фильтром post_rewrite_rules . Это даст следующее:

 add_filter( 'post_rewrite_rules', 'wpse4498_post_rewrite_rules' ); function wpse4498_post_rewrite_rules( $post_rewrite_rules ) { $post_rewrite_rules = array( '(.+?)/([^/]+)/gallery/([0-9]{1,})/?$' => 'index.php?category_name=$matches[1]&name=$matches[2]&gallery=$matches[3]', ) + $post_rewrite_rules; return $post_rewrite_rules; } 

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

Вы активировали постоянные ссылки в настройках NextGen? В разделе Галерея -> Параметры -> Общие выберите «Включить постоянные ссылки», а затем сбросьте общие настройки постоянной ссылки один раз. Это не самый чистый URL в мире (он захватывает идентификатор страницы вместо имени), но он выполняет эту работу.