Lately I am thinking about post's structure of Wordpress.

They will use a table named (wordpress_posts) as well as in this table they saved 3 related fields for example :


It's obvious they save title of every story in publish_title area , and slugs in publish_title , and full link to a publish in guild filed .

But in which the hell, they rewrite these web addresses in way it seems in browsers :


There's no htaccess rules with this !

I checked rewrite.php and did not understand an inch ?!

i have to create similar pages , what steps must i take !?

The .htaccess file includes a rewrite directive that transmits all demands to index.php. The rewrite directive informs the net server to pass through the initial request to another location without redirecting. So, index.php receives all of the original parameters, such as the request path (negligence the URL following the hostname, e.g., "/about/").

When index.php gets to be a request, it functions just like a front controller, determining how you can respond in line with the URL.

I never checked out intricacies of WordPress and so i can't say just how they implemented it, however the general idea for index.php is:

  1. Consider the request path (e.g., "/about/") the client used
  2. Extract a slug in the request path ("about")
  3. Lookup which publish has got the slug "about"
  4. Return the right publish

Lots of the questions you have is going to be described should you examine the WP_Rewrite class.

Essentially, as the majority of you've stated, the .htaccess basically rewrites all Web addresses that don't resolve for an actual file or folder around the server to index.php.

WordPress maps the URL against a listing of rewrite rules, that is a range of secrets and values. The bottom line is a normal expression, and also the value maps back references to some parameter string.

For instance, one rewrite rule is

category/(.+?)/page/?([0-9]{1,})/?$' => 'index.php?category_name=$matches[1]&paged=$matches[2]'

Then your class WP together with WP_Query go ahead and take parameters and take care of the request.