テンプレートパックプラグインを使わずにbuddypress ajaxを読み込むにはどうすればいいですか?私はこれをnon-buddypress互換のテーマのfunctions.phpで持っていました。
include( BP_PLUGIN_DIR . '/bp-themes/bp-default/_inc/ajax.php' );
function mytheme_enqueue_bp_default_js() {
wp_enqueue_script( 'dtheme-ajax-js', BP_PLUGIN_URL . '/bp-themes/bp-default/_inc/global.js', array( 'jquery' ), bp_get_version() );
$params = array(
'my_favs' => __( 'My Favorites', 'buddypress' ),
'accepted' => __( 'Accepted', 'buddypress' ),
'rejected' => __( 'Rejected', 'buddypress' ),
'show_all_comments' => __( 'Show all comments for this thread', 'buddypress' ),
'show_all' => __( 'Show all', 'buddypress' ),
'comments' => __( 'comments', 'buddypress' ),
'close' => __( 'Close', 'buddypress' ),
'view' => __( 'View', 'buddypress' ),
'mark_as_fav' => __( 'Favorite', 'buddypress' ),
'remove_fav' => __( 'Remove Favorite', 'buddypress' )
);
wp_localize_script( 'dtheme-ajax-js', 'BP_DTheme', $params );
}
add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_bp_default_js' );
これが私がカスタムBuddyPressテーマでデフォルトのBP ajaxクエリ/スクリプトを使った方法です:
(コード付きの要旨: https://Gist.github.com/3154297 )
function bp_custom_include_ajax() {
global $bp;
require_once( BP_PLUGIN_DIR . '/bp-themes/bp-default/_inc/ajax.php' );
if ( !is_admin() ) {
// Register buttons for the relevant component templates
// Messages button
if ( bp_is_active( 'messages' ) )
add_action( 'bp_member_header_actions', 'bp_send_private_message_button' );
}
// Group buttons
if ( bp_is_active( 'groups' ) ) {
add_action( 'bp_group_header_actions', 'bp_group_join_button' );
add_action( 'bp_group_header_actions', 'bp_group_new_topic_button' );
add_action( 'bp_directory_groups_actions', 'bp_group_join_button' );
}
}
add_action( 'after_setup_theme', 'bp_custom_include_ajax', 11 );
function bp_custom_enqueue_global_script() {
// Add words that we need to use in JS to the end of the page so they can be translated and still used.
$params = array(
'my_favs' => __( 'My Favorites', 'buddypress' ),
'accepted' => __( 'Accepted', 'buddypress' ),
'rejected' => __( 'Rejected', 'buddypress' ),
'show_all_comments' => __( 'Show all comments for this thread', 'buddypress' ),
'show_all' => __( 'Show all', 'buddypress' ),
'comments' => __( 'comments', 'buddypress' ),
'close' => __( 'Close', 'buddypress' )
);
// Bump this when changes are made to bust cache
$version = '20120712';
$params['view'] = __( 'View', 'buddypress' );
// Enqueue the global JS - Ajax will not work without it
wp_enqueue_script( 'dtheme-ajax-js', BP_PLUGIN_URL . '/bp-themes/bp-default/_inc/global.js', array( 'jquery' ), $version );
// Localize the JS strings
wp_localize_script( 'dtheme-ajax-js', 'BP_DTheme', $params );
}
add_action('wp_enqueue_scripts', 'bp_custom_enqueue_global_script');
気にしないで。私は自分自身で簡単な解決策を見つけましたが、デフォルトテーマのajaxほど速くはロードされません。
私のfunctions.phpでは、私はこれを持っています:
<?php
require_once( BP_PLUGIN_DIR . '/bp-themes/bp-default/_inc/ajax.php' );
wp_enqueue_script(
'bp-js', BP_PLUGIN_URL . '/bp-themes/bp-default/_inc/global.js',
array( 'jquery' )
);
?>