Vra

Ek sien dikwels (herskryf) Url's sonder ID in dit, soos op'n paar wordpress installasies.Wat is die beste manier om dit te bereik?Voorbeeld:site.com/product/some-product-name/ Miskien te hou verskeidenheid van die bladsy name en Id's in die kas, om te verhoed dat die DB navraag op elke bladsy versoek?Hoe om konflik te vermy, en wat is die belangrikste kwessies op die gebruik van url's sonder Id's?

Was dit nuttig?

Oplossing

Die gebruik van 'n ID bied die dieselfde raaisel, regtig - jy's net die nagaan vir 'n ander waarde in jou databasis. Die "sommige-produk-naam" deel van jou URL hierbo is ook iets unieks. Sommige mense noem hulle slakke (Wordpress, ook permanente). So in plaas van die gebruik daarvan die databasis vir 'n ry dat die betrokke ID het, jy bevraagteken die databasis vir 'n ry wat 'n bepaalde slak het. Jy hoef nie na die ID weet om die rekord te haal.

Ander wenke

Solank produk name is uniek dit moet nie 'n probleem wees. Dit sal nie langer (ten minste nie betekenisvol) neem om te kyk 'n produk deur 'n unieke naam as numeriese ID solank die kolom geïndekseer.

Wordpress het 'n stuk grond in die wp_posts tafel vir die slak. Wanneer jy die post te skep, skep dit 'n slak van die post titel (as dit is hoe jy dit het ingestel), die vervanging van ruimtes met strepies (of ek dink jy kan dit stel om onderstreping). Dit neem ook uit die apostrofs, kommas, of iets anders. Ek glo dit beperk ook die algehele lengte van die slak, ook.

So, in kort, dit is nie dinamies ontsyfer die URL in die titel van die post se - daar is 'n stuk grond in die tabel wat direk ooreenstem met die URL weergawe van die naam post

.

As jy kan of mag nie weet nie, die Url's is om weer geskryf met Apache se mod_rewrite module.Soos hier genoem, Wordpress is, in die agtergrond, die toeken van'n slak na reinig die titel of pos naam.

Maar, om jou vraag te beantwoord, wat jy beskryf is Wordpress' "Mooi Permanente" funksie en jy kan leer meer oor dit in die Wordpress codex.Nuwer weergawes van Wordpress doen die re-skryf intern (nie .htaccess editin, wp_rewrite in plaas daarvan).Wat is die rede waarom jy sal sien dieselfde ruleset vir enige permalink struktuur.

Maar, as jy doen'n paar grawe jy kan vind die ou herskryf reëls.Byvoorbeeld:

RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$ /index.php?year=$1&monthnum=$2&day=$3 [QSA,L]

Sal'n URL soos /2008/01/01/ en rig dit aan /index.php?year=2008&monthnum=01&day=01 (en laai'n datum kategorie).

Maar, soos reeds genoem, is'n bladsy soos product-name bestaan net want Wordpress reeds ontsmet die post titel en gestoor word dit as'n veld in die databasis.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top