Casero » Extremidades de Blog

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 /forums

Options +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

Tagged with: | Need more help ? Ask your Questions at our Support Center | Follow us on Twitter @TSNW or Facebook
SMS subscribe Print This Post

Translate to EnglishÜbersetzen Sie zum Deutsch/GermanΜεταφράστε στα ελληνικά/GreekПереведите к русскому/RussianOversetter til Norsk/NorwegianÖversätta till Svensk/Swedishहिनà¥à¤¦à¥€ अनà¥à¤µà¤¾à¤¦ करने के लिà¤/Hindi
Tradueix al català/CatalanTulkot uz latviešu/LatvianPreložiť do slovenčiny/SlovakVertaal aan het Nederlands/Dutchترجمة الى العربية/ArabicTraduzca al Español/SpanishTraduisez au Français/French
Traduca ad Italiano/ItalianTraduza ao Português/Portuguese日本語に翻訳しなさい /Japanese한국어에게 번역하십시오/Korean中文翻译/Chinese Simplified中文翻译/Chinese TraditionalПереклад на українську/Ukrainian

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

One Comment »

  • Tommie said:

    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!

Be nice. Keep it clean. Stay on topic. No spam.