vnt
  • 0
Учитель

Сортировка архивных страниц с «красивыми» URL-адресами?

  • 0

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

Было бы здорово создать ссылку на URL-адрес .../page/2/title/, похожий title на новый заказ. Это вообще возможно?!

Нашел несколько скриптов разбиения на страницы, но ни один из них не предлагает эту опцию…

Share
  1. Попробуйте добавить URL-адрес страницы с порядком и/или порядком, который вы хотите, например. example.com/somepage/page/2/?order=desc&orderby=title ..оба параметра order и orderby являются общедоступными переменными запроса (т.е. вы можете запрашивать их непосредственно в URL-адресе).

    • 0
  2. Добавить правило перезаписи с частью заказа очень просто, если делать это для одного сайта. Было бы сложнее, если бы вы захотели создать универсальное решение, которое работало бы для всех установок со всевозможными структурами постоянных ссылок и пользовательскими таксономиями.

    Этот короткий пример работает с базовой установкой WordPress 3.1 без дополнительных пользовательских таксономий. Я использую orderby префикс для предотвращения конфликтов с существующими именами сообщений:

    add_action( 'init', 'wpse13483_init' );
    function wpse13483_init()
    {
        add_rewrite_rule( 'category/(.+?)/orderby/([^/]+)(/page/?([0-9]{1,}))?/?$', 'index.php?category_name=$matches[1]&paged=$matches[4]&orderby=$matches[2]', 'top' );
        add_rewrite_rule( 'tag/([^/]+)/orderby/([^/]+)(/page/?([0-9]{1,}))?/?$', 'index.php?tag=$matches[1]&paged=$matches[4]&orderby=$matches[2]', 'top' );
        add_rewrite_rule( 'type/([^/]+)/orderby/([^/]+)(/page/?([0-9]{1,}))?/?$', 'index.php?post_format=$matches[1]&paged=$matches[4]&orderby=$matches[2]', 'top' );
        add_rewrite_rule( 'author/([^/]+)/orderby/([^/]+)(/page/?([0-9]{1,}))?/?$', 'index.php?author_name=$matches[1]&paged=$matches[4]&orderby=$matches[2]', 'top' );
        add_rewrite_rule( '([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/orderby/([^/]+)(/page/?([0-9]{1,}))?/?$', 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&paged=$matches[6]&orderby=$matches[4]', 'top' );
        add_rewrite_rule( '([0-9]{4})/([0-9]{1,2})/orderby/([^/]+)(/page/?([0-9]{1,}))?/?$', 'index.php?year=$matches[1]&monthnum=$matches[2]&paged=$matches[5]&orderby=$matches[3]', 'top' );
        add_rewrite_rule( '([0-9]{4})/orderby/([^/]+)(/page/?([0-9]{1,}))?/?$', 'index.php?year=$matches[1]&paged=$matches[4]&orderby=$matches[2]', 'top' );
    }
    
    • 0

Оставить ответ

You must login to add an answer.