Je viens d'installer le plugin de forum bbPress 2.0.2 pour WordPress, et j'aimerais changer le texte du lien Home
en iGeek
(ou toute autre chose, d'ailleurs).
Donc le fil d'Ariane Home › Community
devient iGeek › Community
(ou quelque chose comme ça). Comment je fais ça?
Si cela vous aide, c’est le code dans \wp-content\plugins\bbpress\bbp-includes\bbp-common-template.php
qui détermine le texte:
/** Home Text *********************************************************/
// No custom home text
if ( empty( $args['home_text'] ) ) {
// Set home text to page title
if ( $front_id = get_option( 'page_on_front' ) ) {
$pre_front_text = get_the_title( $front_id );
// Default to 'Home'
} else {
$pre_front_text = __( 'Home', 'bbpress' );
}
}
La chaîne est maintenant dans bbpress/includes/common/template-tags.php
.
Accrocher dans bbp_no_breadcrumb
, enregistrer un filtre pour gettext
et changer le texte:
add_filter( 'bbp_no_breadcrumb', 'wpse_44597_change_home_text' );
function wpse_44597_change_home_text( $translated, $original = '', $domain = '' )
{
if ( 'bbp_no_breadcrumb' === current_filter() )
{
add_filter( 'gettext', __FUNCTION__, 10, 3 );
return FALSE;
}
if ( 'Home' === $original && 'bbpress' === $domain )
{
remove_filter( current_filter(), __FUNCTION__ );
return get_bloginfo( 'name' );
}
return $translated;
}
La différence par rapport à un filtre sur bbp_get_breadcrumb
est la suivante: bbp_get_breadcrumb
correspond à la miette complète, et il est très difficile de trouver la chaîne de caractères pour la page d'accueil sans toucher aux mauvais résultats. WordPress peut être installé dans /www/Home/wp/
ou un autre élément peut contenir Word Home
. Vous ne voulez pas toucher à cela.
Il n'y a pas de crochet spécifique pour filtrer le texte d'accueil uniquement. Nous devons donc filtrer le fil d'Ariane entier et remplacer "Home" par "iGeek":
function wpse_44597_custom_home_text_in_bbp_breadcrumb( $trail ) {
return str_ireplace( 'Home', 'iGeek', $trail );
}
add_filter( 'bbp_get_breadcrumb', 'wpse_44597_custom_home_text_in_bbp_breadcrumb' );
L'exemple ci-dessus a été testé avec succès sur mon propre site exécutant bbPress 2.2.3.
Il existe deux possibilités, en fonction du thème que vous utilisez:
1 Localisez l’appel à la fonction bbp_breadcrumb
ou bbp_get_breadcrumb
dans vos fichiers de modèle et ajoutez des arguments à votre fonction, comme suit:
$args = array(
'home_text' => 'iGeek'
);
bbp_breadcrumb( $args );
// or bbp_get_breadcrumb( $args ), depending on which theme has been used in the first place
2 Créez une page que vous utiliserez comme page d'accueil (selon la météo, si votre thème prend en charge cette fonctionnalité ou non; s'il existe un modèle de page disponible pour la page d'accueil, sélectionnez-le), nommez-le "iGeek". Allez à Lecture -> Paramètres dans votre WP admin, sélectionnez "Page statique" dans l'option "Affichages de page avant" et sélectionnez votre page "iGeek" comme page de couverture. Enregistrer les options et le lien dans le fil d'Ariane devrait changer de nom. Cela peut changer la façon dont votre page d'accueil est affichée et peut varier d'un thème à l'autre.
Je suggère d'essayer d'abord la méthode précédente.
MODIFIER:
J'ai trouvé une autre méthode pour le faire - mettez le code ci-dessous dans votre functions.php
:
function modify_breadcrumb_args() {
$args['home_text'] = 'iGeek';
return $args;
}
add_filter( 'bbp_before_get_breadcrumb_parse_args', 'modify_breadcrumb_args' );
alternative jQuery si aucun hook de plug-in n'existe:
<script type="text/javascript">
jQuery(document).ready( function($) {
$('#bborg-crumbs a:first').html('iGeek');
});
</script>