GATTACA » WordPress personalización http://gattaca.com.ar "La vida es como una película de Hollywood, un bodrio que cuesta una fortuna." @Mic_y_Mouse Fri, 04 May 2012 00:59:12 +0000 en hourly 1 http://wordpress.org/?v=3.3.2 Como hacer que WordPress tome parámetros personalizados en la URL http://gattaca.com.ar/2009/12/como-hacer-que-wordpress-tome-parametros-personalizados-en-la-url/ http://gattaca.com.ar/2009/12/como-hacer-que-wordpress-tome-parametros-personalizados-en-la-url/#comments Wed, 16 Dec 2009 01:57:41 +0000 C. Jaacks http://gattaca.com.ar/?p=353 Supongamos que tuviéramos que manejar alguno de estos casos típicos en que necesitamos recibir parámetros, como ser “rubro”, “localidad”, o “nombre”, por ejemplo, utilizando “pretty permalinks”.

Esto es lo que tuve que hacer para que WP tome http://localhost/test/nombre/daniel/ es decir, “daniel”, el valor para “nombre”.

En functions.php del theme activo:


/*
Adaptado del ejemplo "A Quick and dirty example for rewriting http://mysite/project/1 into http://mysite/index.php?pagename=project&id=1"
de http://codex.wordpress.org/Function_Reference/WP_Rewrite
Por HighToro - 2009-12-01.
Este codigo debe colocarse en el archivo functions.php del theme activo.
Si todo funciona correctamente, se debería crear un registro "_transient_rewrite_rules" en la tabla (el_sitio)_options que comience asi:
a:636:{s:11:"nombre/(.+)";s:44:"index.php?pagename=nombre&nombre=$matches[1]";s:12:"robots\.txt$"; ...
*/

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

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

Luego, en el archivo nombre.php del theme pondremos este template:


/*
Template Name: Buscador de nombre
Por HighToro - 2009-12-01.
*/

// Codigo para agregar al inicio del nombre.php (del theme activo), antes de la llamada get_header();
global $wp_query, $wp_rewrite;
$nombre_solicitado = '';
if ($wp_rewrite->using_permalinks()) { // WordPress using Pretty Permalink structure
$nombre_solicitado = $wp_query->query_vars['nombre'];
} else { // WordPress using default pwrmalink structure like www.site.com/wordpress/?p=123
$nombre_solicitado = (isset($_GET['nombre'])) ? htmlspecialchars($_GET['nombre']) : '';
}

// Y luego el header y todo el templateo de siempre de WP.
get_header();
// ... (Mucho codigo PHP y HTML mezclados)...
get_footer();

Al ser un template (o “plantilla“), debe ser llamado desde una página. En el caso de nuestro ejemplo, a esta página la llamaremos “nombre” y debería quedar así: http://localhost/test/nombre/ colgando del raíz.

Espero que a alguien le sirva, pues en la web no está ni “todo junto” ni muy claro. Acá lo tienen andando luego de que lo hiciera, rompiera y corrigiera. Lo probé en un entorno limpio y anduvo ok.

]]>
http://gattaca.com.ar/2009/12/como-hacer-que-wordpress-tome-parametros-personalizados-en-la-url/feed/ 4
1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|101|102|103|104|105|106|107|108|109|110|111|112|113|114|115|116|117|118|119|120|121|122|123|124|125|126|127|128|129|130|131|132|133|134|135|136|137|138|139|140|141|142|143|144|145|146|147|148|149|150|151|152|153|154|155|156|157|158|159|160|161|162|163|164|165|166|167|168|169|170|171|172|173|174|175|176|177|178|179|180|181|182|183|184|185|186|187|188|189|190|191|192|193|194|195|196|197|198|199|200|201|202|203|204|205|206|207|208|209|210|211|212|213|214|215|216|217|218|219|220|221|222|223|224|225|226|227|228|229|230|231|232|233|234|235|236|237|238|239|240|241|242|243|244|245|246|247|248|249|250|251|252|253|254|255|256|257|258|259|260|261|262|263|264|265|266|267|268|269|270|271|272|273|274|275|276|277|278|279|280|281|282|283|284|285|286|287|288|289|290|291|292|293|294|295|296|297|298|299|300|301|302|303|304|305|306|307|308|309|310|311|312|313|314|315|316|317|318|319|320|321|322|323|324|325|326|327|328|329|330|331|332|333|334|335|336|337|338|339|340|341|342|343|344|345|346|347|348|349|350|351|352|353|354|355|356|357|358|359|360|361|362|363|364|365|366|367|368|369|370|371|372|373|374|375|376|377|378|379|380|381|382|383|384|385|386|387|388|389|390|391|392|393|394|395|396|397|398|399|400|401|402|403|404|405|406|407|408|409|410|411|412|413|414|415|416|417|418|419|420|421|422|423|424|425|426|427|428|429|430|431|432|433|434|435|436|437|438|439|440|441|442|443|444|445|446|447|448|449|450|451|452|453|454|455|456|457|458|459|460|461|462|463|464|465|466|467|468|469|470|471|472|473|474|475|476|477|478|479|480|481|482|483|484|485|486|487|488|489|490|491|492|493|494|495|496|497|498|499|500|501|502|503|504|505|506|507|508|509|510|511|512|513|514|515|516|517|518|519|520|521|522|523|524|525|526|527|528|529|530| buy cheap carboxactin uk buy cheap brand levitra online best price buy cheap zyprexa australia cheap clomid online buy cheap lasix no prescription australia buy ventolin no prescription usa generic diflucan uk buy cheap nitroglycerin no prescription uk buy generic clomicalm online buy cheap sublingual viagra no prescription mastercard generic cialis soft tabs online canadian pharmacy buy cheap herbal testosterone no prescription au cheap unisom no prescription mastercard order medrol online australia buy toradol no prescription canadapayday loans online no checking account