WordPress 4.0 отправляет переменные URL с постоянными ссылками

Я пытаюсь отправить переменную в URL. Поскольку у меня активированы постоянные ссылки, я пытаюсь добавить правило перезаписи, как сказано в посте, который я прочитал здесь …

Ну, ничего не работает. Это код, который я имею на functions.php

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();
$newrules['view-article/(.+)'] = 'index.php?pagename=view-article&aid=$matches[1]';
$finalrules = $newrules + $rules;
return $finalrules;
}

// Adding the var so that WP recognizes it
function wp_insertMyRewriteQueryVars($vars)
{
array_push($vars, 'aid');
return $vars;
}

//Stop wordpress from redirecting
remove_filter('template_redirect', 'redirect_canonical');

и это вызов для получения переменной.

$aid = urldecode($wp_query->query_vars['aid']);

Что я делаю неправильно? 🙁
Моя версия WordPress 4.0 (последняя)

1

Решение

Попробуйте следующий код:

add_action('init', 'flush_urls');

function flush_urls()
{
// Execute flush_rules() on every request can
// slow down your entire website
if('clean' !== get_option('flush_urls', ''))
{
flush_rewrite_rules();
add_option('flush_urls', 'clean');
}
}

add_action('init', 'register_rewrite_rules',    0);

function register_rewrite_rules()
{
add_rewrite_tag('%aid%',         '([^/]+)');

add_rewrite_rule(
"view-article/([^/]+)/?",
'index.php?pagename=view-article&aid=$matches[1]',
"top");
}

Наконец в вашем template-redirect или любое другое действие / ловушку, вы должны сделать следующее:

global $wp_query;

echo $wp_query->query_vars['pagename'];
echo $wp_query->query_vars['aid'];

Если вы не видите эти переменные внутри $ wp_query, попробуйте снова сохранить постоянные ссылки в вашей панели управления WordPress. Это очистит кэш URL-адресов.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]