Rezervované názvy parametrů ve WordPressu

21. 8. 2015

Při odesílání parametrů v HTTP požadavcích (proměnné v $_GET, $_POST a $_REQUEST), například při odesílání formulářů nebo přidávání parametrů do adres, je třeba myslet na to, že některé názvy jsou vyhrazené WordPressem. Pokud bych některý z vyhrazených parametrů použil pro své data (například pro název políčka formuláře), mohl bych nechtěně ovlivnit výstup a chování stránky.

Při odesílání parametrů v HTTP požadavcích (proměnné v $_GET, $_POST a $_REQUEST), například při odesílání formulářů nebo přidávání parametrů do adres, je třeba myslet na to, že některé názvy jsou vyhrazené WordPressem. Pokud bych některý z vyhrazených parametrů použil pro své data (například pro název políčka formuláře), mohl bych nechtěně ovlivnit výstup a chování stránky.

Seznam vyhrazených parametrů je dostupný v souboru wp-includex/class-wp.php. Ve verzi 4.3 jsou to tyto parametry.

  • m, p, posts, w, cat, withcomments, withoutcomments, s, search, exact, sentence, calendar, page, paged, more, tb, pb, author, order, orderby, year, monthnum, day, hour, minute, second, name, category_name, tag, feed, author_name, static, pagename, page_id, error, comments_popup, attachment, attachment_id, subpost, subpost_id, preview, robots, taxonomy, term, cpage, post_type.
  • offset, posts_per_page, posts_per_archive_page, showposts, nopaging, post_type, post_status, category__in, category__not_in, category__and, tag__in, tag__not_in, tag__and, tag_slug__in, tag_slug__and, tag_id, post_mime_type, perm, comments_per_page, post__in, post__not_in, post_parent, post_parent__in, post_parent__not_in.

Zde je funkce, která testuje zda konkrétní parametr je (vrací true) nebo není (vrací false) vyhrazený:

[php]
function webmaestro_is_reserved_var($name) {
$wp_vars = get_class_vars(‘WP’);
if (in_array($name, $wp_vars[‘public_query_vars’])) return true;
if (in_array($name, $wp_vars[‘private_query_vars’])) return true;
return false;
}
[/php]

Tož tak.

← Zpátky na články