私はWordPress用のbbPress 2.0.2フォーラムプラグインをインストールしたところで、リンクHome
のテキストをiGeek
に変更したいと思っています(それ以外の場合は何か)。
したがって、ブレッドクラムのHome › Community
はiGeek › Community
(またはそのようなもの)になります。それ、どうやったら出来るの?
役に立つ場合には、これが \wp-content\plugins\bbpress\bbp-includes\bbp-common-template.php
内のコードでテキストを決定します。
/** 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' );
}
}
文字列はbbpress/includes/common/template-tags.php
になりました。
bbp_no_breadcrumb
にフックし、gettext
のフィルターを登録して、テキストを変更します。
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;
}
bbp_get_breadcrumb
のフィルターとの違いは次のとおりです。bbp_get_breadcrumb
は完全なパンくずであり、誤った一致に触れずにホームページの文字列を見つけるのは非常に困難です。 WordPressが/www/Home/wp/
にインストールされているか、別のアイテムにWord Home
が含まれている可能性があります。あなたはそれに触れたくない。
ホームテキストのみをフィルタリングするための特別なフックはありません。したがって、ブレッドクラム全体をフィルタリングし、「Home」を「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' );
上記の例は、bbPress 2.2.3を実行している自分のサイトで正常にテストされています。
使用しているテーマに応じて、2つの可能性があります。
1テンプレートファイルでbbp_breadcrumb
またはbbp_get_breadcrumb
関数の呼び出しを見つけて、次のように関数に引数を追加します。
$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ホームページとして使用するページを作成します(テーマがそのような機能をサポートしているかどうかによって異なります。ホームページに使用可能なページテンプレートがある場合は、それを選択します)。 Reading - >あなたのWP adminの設定に行き、 'Front page Displays'オプションで 'Static page'を選択し、あなたの 'iGeek'ページをフロントページとして選択してください。保存オプションとブレッドクラム内のリンクで名前を変更する必要があります。これはあなたのホームページが表示される方法を変えるかもしれず、テーマごとに変わることがあります。
最初の方法を試してみることをお勧めします。
編集:
私はそれをするための別の方法を見つけました - あなたのfunctions.php
の中に以下のコードを入れてください:
function modify_breadcrumb_args() {
$args['home_text'] = 'iGeek';
return $args;
}
add_filter( 'bbp_before_get_breadcrumb_parse_args', 'modify_breadcrumb_args' );
プラグインフックが存在しない場合の代替jQuery:
<script type="text/javascript">
jQuery(document).ready( function($) {
$('#bborg-crumbs a:first').html('iGeek');
});
</script>