Comment enlever le forum et le mot-clé de matière de l'URL de bbpress
J'avais essayé le sort de softwares de forum (autour 5 jusqu'à maintenant) du vendredi passé et examinais BBPRESS hier. Le nouveau version9.x a le sort d'amélioration au-dessus de sa version 8.x mais d'une chose que j'ai trouvé le terrain communal dans les deux
- Le mot-clé de « forum » a été apposé quand vous des accesss tout forum-annuaire de http://sitename.com/ de forum< par exemple>/forum/<lingot de forum>
- le mot-clé de « matière » a été également apposé pour chaque poteau fait par exemple forum-annuaire< de http://sitename.com>/matière/<réellement lingot de matière>
Maintenant je comprends pourquoi les les deux les mots-clés sont reqired mais encore du point de SEO qu'il n'a aucune signification à moins que quelqu'un coure un forum sur la matière de « forum ». La prochaine chose que je était regard autour pour une entaille et heureusement à ce poteau il y avait une solution , mais plugin non réel a été soutenu. J'ai copié le code donné là et examiné autour et étais réussi.
Avant que je commence, j'ai juste examiné autour avec le code donné par les memebers là-bas. Examinez-ainsi le avant que vous l'employiez. Et d'ailleurs je ne le soutiens pas car je ne l'ai pas fait et la pente le font l'un ou l'autre.
J'ai fait un plugin à partir du code donné et ai pris le code de réécriture pour des dossiers de .htaccess. Voici à quoi ils ressemblent
PLUGIN : (Pris du lien de forum)
<? php
/*
Nom Plugin : Enlevez le forum de matière
URI Plugin : http://bbpress.org/
Description : Laisse enlever le forum et le mot de matière dans l'URL
Auteur : Ashish Mohta
Version : 1.0
URI d'auteur : http://www.technospot.net/blogs/
*/my_get_forum_link_filter de fonction ($link, $forum_id = 0) {
//retrieve l'objet de forum
$forum = get_forum (get_forum_id ($forum_id));//check pour la réécriture
$rewrite = bb_get_option (mod_rewrite de `') ;
si ($rewrite) {
le genre de //what de réécriture là est ? la colonne de « forum_slug » d'utilisation de lingot, autrement la colonne est « forum_id »
$column = (===' lingots' de $rewrite) ? (' forum_slug') : (' forum_id') ;// changez /forum/pets-discussions dans /pets-discussions
// ce travail seulement si le module de réécriture est 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!