Передача та отримання запитів VRS у wordpress


16

У мене дві авторські сторінки, на одній відображено близько 5 публікацій. Тоді я намагаюся налаштувати ще одну сторінку, на якій будуть усі їх публікації. Я створив шаблон під назвою moreauthorposts.php і намагаюся передати авторську змінну на цю сторінку. Проблема полягає в тому, що якщо я передаю domain.com/more-author-posts?author=johndoe, він видаляється. Як я можу отримати це значення? Це можливо навіть у wordpress? Я знаю, що WP Rewrite якось скасовує мою структуру URL-адрес, я просто не впевнений.

Я спробував:

get_query_var('author')

і спробував прочитати це, але не пощастило:

http://codex.wordpress.org/Query_Overview

Пропозиції?

Спасибі.

Відповіді:


21

Я майже впевнений, що authorце вбудований, тому використовуйте щось подібне author_more. Вам потрібно буде додати цей вар query_vars. Приклад:

// add `author_more` to query vars
add_filter( 'init', 'add_author_more_query_var' );
function add_author_more_query_var()
{
    global $wp;
    $wp->add_query_var( 'author_more' );
}

Потім у своєму more-author-posts.phpшаблоні назвіть це так:

if ( get_query_var( 'author_more' ) )
{
    // do your stuff
}

Оновлення

Це працює в наступному прикладі / випадку використання URl:

http://example.com/index.php?author_more=value

Але якщо ви хочете використовувати це як фантастичний URl, вам потрібно додати правило перезапису:

add_action('init','add_author_more_rewrite_rule');
function add_author_more_rewrite_rule()
{
    add_rewrite_rule(
        'more-author-posts/(\d*)$',
        'index.php?author_more=$matches[1]',
        'top'
    );
}

Тепер ви можете використовувати його так

http://example.com/more-author-posts/value

Добре, тому я додав запит vars у function.php. Потім додав інший код до моїх авторських публікацій. Яка б була правильна структура URL-адрес, щоб передати їх? Я знаю, що сторінка використовує формат / page / 2, але публікації більше авторів / more_author / johndoe, здається, не працюють?
codeisforeva

я оновив відповідь
Bainternet

Проблема полягає в тому, що вони не намагаються передати VARS до index.php. Я намагаюся передати їх спеціально розробленому шаблону, який я розробив, оскільки він виглядає зовсім іншим, ніж індекс. Тож якщо я передаю значення moreauthor.php? Author_more = johndoe .., схоже, це не працює. Тут щось не так?
codeisforeva

@ בניית אתרים виглядає як дуже чітка відповідь! @codeisforeva Ви не повинні викликати файл шаблону безпосередньо, чи не так? index.php - це лише кореневий файл wordpress, кожне правило перезапису повинно пройти там.
goldenapples

1
@codeisforeva: index.phpПравило перезапису - це index.phpкореневий каталог WordPress, а не index.phpфайл вашого шаблону. Ви все ще можете вибрати, який шаблон повинен відображатися, зачепивши у template_includeфільтр.
Ян Фабрі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.