Cómo quitar foro y palabra clave del asunto del URL de los bbpress
Había estado intentando la porción de los softwares del foro (alrededor 5 hasta ahora) del viernes pasado y probaba BBPRESS ayer. El version9.x nuevo tiene porción de mejora sobre su versión 8.x pero una cosa que encontré el campo común en los dos
- La palabra clave del “foro” fue añadida cuando usted los accesss cualquier foro-directorio de http://sitename.com/ del foro< e.g>/foro/<lingote del foro>
- la palabra clave del “asunto” también fue añadida para cada poste hecho e.g foro-directorio< de http://sitename.com>/asunto/<realmente lingote del asunto>
Ahora entiendo porqué ambas las son palabras claves reqired pero otra vez de punto de SEO que no tiene ningún significado a menos que alguien funcione un foro en asunto de los “foros”. La cosa siguiente que lo hice era mirada alrededor para un corte y afortunadamente en este poste había una solución , solamente plugin no real fue apoyada. Copié el código dado allí y probado alrededor y era acertado.
Antes de que comience, acabo de probar alrededor con el código dado por los memebers allá. Pruébelo tan antes de que usted lo utilice. Y por otra parte no lo estoy apoyando pues no lo hice y el canto lo hace cualquiera.
Hice un plugin del código dado y tomé el código de la reescritura para los archivos de .htaccess. Aquí es cómo miran
PLUGIN: (Tomado del acoplamiento del foro)
<¿? php
/*
Nombre Plugin: Quite el foro del asunto
URI Plugin: http://bbpress.org/
Descripción: Permite para quitar foro y palabra del asunto en el URL
Autor: Ashish Mohta
Versión: 1.0
URI del autor: http://www.technospot.net/blogs/
*/my_get_forum_link_filter de la función ($link, $forum_id = 0) {
//retrieve el objeto del foro
$forum = get_forum (get_forum_id ($forum_id));//check para la reescritura
$rewrite = bb_get_option (mod_rewrite del `');
si ($rewrite) {
¿la clase de //what de reescritura allí es? la columna del “forum_slug” del uso del lingote, la columna es “forum_id”
¿$column = (===' lingotes' de $rewrite)? (' forum_slug'): (' forum_id');// cambie /forum/pets-discussions en /pets-discussions
// ¡este trabajo solamente si es el módulo de la reescritura modded!
// and this work only if the slugged name will NEVER
// be a reserved word like “rss” or “bb-images”
// and this is achieved by a filter on bb_slug_sanitize
$link = str_replace(’forum/’ . $forum->$column , $forum->$column, $link);
}
return $link.”/”; // Very important line! // Added extra slash :Ashish
}add_filter( ‘get_forum_link’, ‘my_get_forum_link_filter’ );
function my_get_topic_link_filter( $link, $topic_id = 0) {
//retrieve the topic object
$topic = get_topic( get_topic_id( $topic_id ));//retrieve the forum object that is the topic container
$forum = get_forum( get_forum_id( $topic->forum_id ));//check for rewrite
$rewrite = bb_get_option( ‘mod_rewrite’ );
if ( $rewrite ) {
//what kind of rewrite there is? slug use “forum_slug” column, else the column is “forum_id”
$column = ($rewrite === ’slugs’)?(’forum_slug’):(’forum_id’);//create the “forum/pets-discussions” chunk to show the hierarchical relation forum->topic
$forum_nice_uri = “forum/” . $forum->$column . “/”;//attach the hierarchical chunk to the link
$link = str_replace(bb_get_option(’uri’), bb_get_option(’uri’) . $forum_nice_uri, $link);// change /forum/pets-discussions/topic/my-sweet-dog in /pets-discussions/my-sweet-dog
// this work only if the rewrite module is modded!
// and this work only if the slugged name will NEVER
// be a reserved word like “rss” or “bb-images”
// and this is achieved by a filter on bb_slug_sanitize
$link = str_replace(’forum/’ . $forum->$column , $forum->$column, $link);
$link = str_replace(’topic/’ . $topic->$column , $topic->$column, $link);
}return $link.”/” ; // Very important line! // Added Extra Slash :Ashish
}add_filter( ‘get_topic_link’, ‘my_get_topic_link_filter’ );
function my_bb_slug_sanitize_filter( $text_slug, $text_original = ”, $length = 0 ) {
// add “r-” by regex when the string begins with “bb-” or “my-” or is a reserved word
return preg_replace(’/^(my-.*|bb-.*|rss|tags|view|profiles)$/’, ‘r-$1′, $text_slug);
}add_filter( ‘bb_slug_sanitize’, ‘my_bb_slug_sanitize_filter’ );
?>
.htcaccess file:
( Taken from one same forum link and modified a little. You will need to remove the MULTIVIEW from your existing .htaccess file )
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /forumsOptions +FollowSymlinks
RewriteRule ^tags/([^/]+)/page/([0-9]+)/?$ tags.php?tag=$1&page=$2 [L,QSA]
RewriteRule ^tags/([^/]+)/?$ tags.php?tag=$1 [L,QSA]
RewriteRule ^tags/?$ tags.php [L,QSA]
RewriteRule ^profile/([^/]+)/page/([0-9]+)/?$ profile.php?id=$1&page=$2 [L,QSA]
RewriteRule ^profile/([^/]+)/([^/]+)/?$ profile.php?id=$1&tab=$2 [L,QSA]
RewriteRule ^profile/([^/]+)/([^/]+)/page/([0-9]+)/?$ profile.php?id=$1&tab=$2&page=$3 [L,QSA]
RewriteRule ^profile/([^/]+)/?$ profile.php?id=$1 [L,QSA]
RewriteRule ^view/([^/]+)/page/([0-9]+)/?$ view.php?view=$1&page=$2 [L,QSA]
RewriteRule ^view/([^/]+)/?$ view.php?view=$1 [L,QSA]
RewriteRule ^rss/?$ rss.php [L,QSA]
RewriteRule ^rss/forum/([^/]+)/?$ rss.php?forum=$1 [L,QSA]
RewriteRule ^rss/topic/([^/]+)/?$ rss.php?topic=$1 [L,QSA]
RewriteRule ^rss/tags/([^/]+)/?$ rss.php?tag=$1 [L,QSA]
RewriteRule ^rss/profile/([^/]+)/?$ rss.php?profile=$1 [L,QSA]RewriteRule ^([^.]+)/([^.]+)/page/([0-9]+)/?$ topic.php?id=$2&page=$3 [L,QSA]
RewriteRule ^([^/.]+)/([^.]+)/?$ topic.php?id=$2 [L,QSA]RewriteRule ^([^/.]+)/page/([0-9]+)/?$ forum.php?id=$1&page=$2 [L,QSA]
RewriteRule ^([^/.]+)/?$ forum.php?id=$1 [L,QSA]
</IfModule>
Place the plugin file in my-plugin directory and .htaccess file in bbpress root directory. Active the plugin. and it should work fine.
The Problem I find with this.
- The Link to BBpress admin board link does not work from main site. It redirects to home page. You will need to manually type the link to go inside.
- In case you type something which does not exists as http://sitename.com/<bbpress-directory>/sdaksda it returns http://sitename.com/<bbpress-directory>// . An extra slash.
Except these 2 there is no problem I see so far but Its not easy to predict as I dont have lot of posts or users. So if you want to try it out download the files here . You can give your feedback here if you can improve it. And If somebody wants they can support the plugin and enhance it. You can see demo of this on the forum I tested on but You wont be able to register and anyways it just a test forum
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Posted on 4th April 2008 by Ashish Mohta , A tech blogger who writes about solving day to day problems of people who use computer. He also writes on How to use the applications like Office, PC tips, Online tools,Browsers and more. All posts by Ashish Mohta | Connect with me @ Twitter | Linkedin | Facebook | Stumble
























Free Email Subscription
Thanks! It works wonders. Running it now on the community site Callofduty.se. Your sh*t is the only EASY solution to this problem – thanks again!
(Running it with bbPress 1.01 if anyone would like to know)
Leave your response!