Results 1 to 4 of 4

Thread: Guidance requested: url parsing vs query string parsing

  1. #1
    Join Date
    Dec 2017

    Question Guidance requested: url parsing vs query string parsing

    I am fairly new to php and wordpress, so this may be an embarrassingly easy question, but I have been trying to search for an answer and am coming up short. (searching for wordpress url rewrite querystring brings up a million things).

    I’d like to use the URL components or slug parts to act as query string vars.
    I'm posting here hoping for some guidance or maybe links to examples.

    Given a URL that looks like this, where the code can parse the parameters and dynamically generate content:


    I’d like it to look like a regular wordpress URL with slugs:


    I am trying to figure out if it’s possible, and where to put the code, to capture anything with “website.com/schedule” to then allow me to parse through the rest and generate the content.

    I know if I create taxonomies or posts or pages, I could get the URL to look correct, but the problem is that I want it all to be completely dynamic.

    My newbie thoughts would be to have wordpress see the first part (/schedule/) as a real slug, and open that page, and have a shortcode on that page that would trigger code to interpret the rest of URL and generate content. (would work fine with query string parameters, but i'd like the url to be friendly)

    I suspect that rewrite rules in .htaccess could change the incoming url in wordpress/slug format to the query string format, but I am unsure how that can be done dynamically. The query parameters would be changing (adding) all the time. Maybe a complex rewrite rule would do the trick, but I'd like this to be part of a plugin, not in .htaccess.

    Any guidance is greatly appreciated!

  2. #2
    Join Date
    Mar 2007
    You use an htaccess file in the servers root folder that serves the website up.

    This will take any URL that you present, like website.com/schedule/2017/11/25/AA and then remap it to the actual URL website.com/schedule?year=2017&month=11&day=25&group=AA internally and serve up the data to the client.

    So you will need to learn how to make a .htaccess file, how to write the rewrite conditions and also lear RegularExpressions as rewrite rules often depend heavily on regular expressions and capturing results for remaping to the desired URL.

    This process is handy for controlling what URL's are allowed and those that fail the parsing / rewrite rules can eventually be sent on to a desired URL on or off your site. I have a rewrite rule in a file on my server that kicks the user out if they enter the wrong password.

    You can find online tools that can help you develop a set of rules, its a question of putting your search engine to use.
    --> JavaScript Frameworks like JQuery, Angular, Node <--
    ... and please remember to wrap code with forum BBCode tags:-

    [CODE]...[/CODE] [HTML]...[/HTML] [PHP]...[/PHP]

    If you can't think outside the box, you will be trapped forever with no escape...

  3. #3
    Join Date
    Aug 2004
    In fact, if you look at your WordPress site's .htaccess file, you'll see how they're doing it. (Caveat: I haven't worked with WP for a few years now, so new versions may do something different than I remember.)
    "Well done....Consciousness to sarcasm in five seconds!" ~ Terry Pratchett, Night Watch

    How to Ask Questions the Smart Way (not affiliated with this site, but well worth reading)

    My Blog
    cwrBlog: simple, no-database PHP blogging framework

  4. #4
    Join Date
    Dec 2017
    Ok, thanks for the quick and informative response! Not sure why I was having such trouble, but after reading your posts, I did more searching (with better understanding) and ran into the wordpress rewrite functions (https://codex.wordpress.org/Rewrite_...d_rewrite_rule).

    I will do some .htaccess learning (and online tool testing) and be able to put it in within my plugin.

    Thanks again!

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
HTML5 Development Center



X vBulletin 4.2.2 Debug Information

  • Page Generation 0.09733 seconds
  • Memory Usage 2,870KB
  • Queries Executed 15 (?)
More Information
Template Usage (32):
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (4)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (73):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates