Changeset 12728
- Timestamp:
- 09/21/2020 01:09:16 AM (4 years ago)
- Location:
- trunk/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-core/bp-core-actions.php
r12578 r12728 83 83 84 84 /** 85 * The bp_register_taxonomies hook - Attached to 'bp_init' @ priority 2 above.85 * The bp_register_taxonomies hooks - Attached to 'bp_init' @ priority 2 above. 86 86 */ 87 87 add_action( 'bp_register_taxonomies', 'bp_register_member_types' ); 88 add_action( 'bp_register_taxonomies', 'bp_register_type_metadata', 20 ); 88 89 89 90 /** -
trunk/src/bp-core/bp-core-dependency.php
r12578 r12728 94 94 */ 95 95 do_action( 'bp_register_taxonomies' ); 96 } 97 98 /** 99 * Fire the 'bp_register_type_metadata' action, where plugins should register metadata for their custom BuddyPress types. 100 * 101 * @since 7.0.0 102 */ 103 function bp_register_type_metadata() { 104 105 /** 106 * Fires inside the 'bp_register_type_metadata' function, where plugins should register metadata for their custom BuddyPress types. 107 * 108 * @since 7.0.0 109 */ 110 do_action( 'bp_register_type_metadata' ); 96 111 } 97 112 -
trunk/src/bp-core/bp-core-functions.php
r12694 r12728 2938 2938 2939 2939 /** 2940 * Returns the BP Taxonomy common arguments. 2941 * 2942 * @since 7.0.0 2943 * 2944 * @return array The BP Taxonomy common arguments. 2945 */ 2946 function bp_get_taxonomy_common_args() { 2947 return array( 2948 'public' => false, 2949 'show_in_rest' => false, 2950 'query_var' => false, 2951 'rewrite' => false, 2952 'show_in_menu' => false, 2953 'show_tagcloud' => false, 2954 'show_ui' => bp_is_root_blog() && bp_current_user_can( 'bp_moderate' ), 2955 ); 2956 } 2957 2958 /** 2959 * Returns the BP Taxonomy common labels. 2960 * 2961 * @since 7.0.0 2962 * 2963 * @return array The BP Taxonomy common labels. 2964 */ 2965 function bp_get_taxonomy_common_labels() { 2966 return array( 2967 'bp_type_name' => _x( 'Name', 'BP Type name label', 'buddypress' ), 2968 'bp_type_singular_name' => _x( 'Singular name', 'BP Type singular name label', 'buddypress' ), 2969 'bp_type_has_directory' => _x( 'Add Type-Filtered Directory View', 'BP Type has directory checkbox label', 'buddypress' ), 2970 'bp_type_directory_slug' => _x( 'Custom type directory slug', 'BP Type slug label', 'buddypress' ), 2971 ); 2972 } 2973 2974 /** 2940 2975 * Output the name of the email type taxonomy. 2941 2976 * … … 2999 3034 } 3000 3035 3036 /** 3037 * Return arguments used by the email type taxonomy. 3038 * 3039 * @since 7.0.0 3040 * 3041 * @return array 3042 */ 3043 function bp_get_email_tax_type_args() { 3044 3045 /** 3046 * Filters emails type taxonomy args. 3047 * 3048 * @since 7.0.0 3049 * 3050 * @param array $value Associative array (key => arg). 3051 */ 3052 return apply_filters( 3053 'bp_register_email_tax_type', 3054 array_merge( 3055 array( 3056 'description' => _x( 'BuddyPress email types', 'email type taxonomy description', 'buddypress' ), 3057 'labels' => bp_get_email_tax_type_labels(), 3058 'meta_box_cb' => 'bp_email_tax_type_metabox', 3059 ), 3060 bp_get_taxonomy_common_args() 3061 ) 3062 ); 3063 } 3064 3065 /** 3066 * Returns the default BuddyPress type metadata schema. 3067 * 3068 * @since 7.0.0 3069 * 3070 * @param boolean $suppress_filters Whether to suppress filters. Default `false`. 3071 * @param string $type_taxonomy Optional. the Type's taxonomy name. 3072 * @return array The default BuddyPress type metadata schema. 3073 */ 3074 function bp_get_type_metadata_schema( $suppress_filters = false, $type_taxonomy = '' ) { 3075 $schema = array( 3076 'bp_type_name' => array( 3077 'description' => __( 'The name of your type, at the plural form.', 'buddypress' ), 3078 'type' => 'string', 3079 'single' => true, 3080 'sanitize_callback' => 'sanitize_text_field', 3081 ), 3082 'bp_type_singular_name' => array( 3083 'description' => __( 'The name of your type, at the singular form.', 'buddypress' ), 3084 'type' => 'string', 3085 'single' => true, 3086 'sanitize_callback' => 'sanitize_text_field', 3087 ), 3088 'bp_type_has_directory' => array( 3089 'description' => __( 'Add a list of members matching the member type available on the Members Directory page (e.g. site.url/members/type/teacher/).', 'buddypress' ), 3090 'type' => 'boolean', 3091 'single' => true, 3092 'sanitize_callback' => 'absint', 3093 ), 3094 'bp_type_directory_slug' => array( 3095 'label' => __( 'Custom type directory slug', 'buddypress' ), 3096 'description' => __( 'If you want to use a slug that is different from the Member Type ID above, enter it here.', 'buddypress' ), 3097 'type' => 'string', 3098 'single' => true, 3099 'sanitize_callback' => 'sanitize_title', 3100 ), 3101 ); 3102 3103 if ( true === $suppress_filters ) { 3104 return $schema; 3105 } 3106 3107 /** 3108 * Filter here to add new meta to the BuddyPress type metadata. 3109 * 3110 * @since 7.0.0 3111 * 3112 * @param array $schema Associative array (name => arguments). 3113 * @param string $type_taxonomy The Type's taxonomy name. 3114 */ 3115 return apply_filters( 'bp_get_type_metadata_schema', $schema, $type_taxonomy ); 3116 } 3117 3118 /** 3119 * Registers a meta key for BuddyPress types. 3120 * 3121 * @since 7.0.0 3122 * 3123 * @param string $type_tax The BuddyPress type taxonomy. 3124 * @param string $meta_key The meta key to register. 3125 * @param array $args Data used to describe the meta key when registered. See 3126 * {@see register_meta()} for a list of supported arguments. 3127 * @return bool True if the meta key was successfully registered, false if not. 3128 */ 3129 function bp_register_type_meta( $type_tax, $meta_key, array $args ) { 3130 $taxonomies = wp_list_pluck( bp_get_default_taxonomies(), 'component' ); 3131 3132 if ( ! isset( $taxonomies[ $type_tax ] ) ) { 3133 return false; 3134 } 3135 3136 // register_term_meta() was introduced in WP 4.9.8. 3137 if ( ! function_exists( 'register_term_meta' ) ) { 3138 $args['object_subtype'] = $type_tax; 3139 3140 return register_meta( 'term', $meta_key, $args ); 3141 } 3142 3143 return register_term_meta( $type_tax, $meta_key, $args ); 3144 } 3001 3145 3002 3146 /** Email *****************************************************************/ -
trunk/src/bp-core/bp-core-taxonomy.php
r12727 r12728 16 16 17 17 /** 18 * Returns default BuddyPress taxonomies. 19 * 20 * @since 7.0.0 21 * 22 * @return array The BuddyPress default taxonomies. 23 */ 24 function bp_get_default_taxonomies() { 25 $taxonomies = array( 26 // Member Type. 27 bp_get_member_type_tax_name() => array( 28 'object' => 'user', 29 'component' => 'members', 30 'args' => bp_get_member_type_tax_args(), 31 ), 32 // Email type. 33 bp_get_email_tax_type() => array( 34 'object' => bp_get_email_post_type(), 35 'component' => 'core', 36 'args' => bp_get_email_tax_type_args(), 37 ), 38 ); 39 40 /** 41 * This filter should only be used by built-in BuddyPress Components. 42 * 43 * @since 7.0.0 44 * 45 * @param array $taxonomies The taxonomy arguments used for WordPress registration. 46 */ 47 return apply_filters( 'bp_get_default_taxonomies', $taxonomies ); 48 } 49 50 /** 18 51 * Register our default taxonomies. 19 52 * … … 21 54 */ 22 55 function bp_register_default_taxonomies() { 23 // Member Type. 24 register_taxonomy( bp_get_member_type_tax_name(), 'user', array( 25 'public' => false, 26 ) ); 27 28 // Email type. 29 register_taxonomy( 30 bp_get_email_tax_type(), 31 bp_get_email_post_type(), 32 apply_filters( 'bp_register_email_tax_type', array( 33 'description' => _x( 'BuddyPress email types', 'email type taxonomy description', 'buddypress' ), 34 'labels' => bp_get_email_tax_type_labels(), 35 'meta_box_cb' => 'bp_email_tax_type_metabox', 36 'public' => false, 37 'query_var' => false, 38 'rewrite' => false, 39 'show_in_menu' => false, 40 'show_tagcloud' => false, 41 'show_ui' => bp_is_root_blog() && bp_current_user_can( 'bp_moderate' ), 42 ) ) 43 ); 56 $taxonomies = bp_get_default_taxonomies(); 57 58 foreach ( $taxonomies as $taxonomy_name => $taxonomy_params ) { 59 if ( ! isset( $taxonomy_params['object'] ) || ! isset( $taxonomy_params['args'] ) ) { 60 continue; 61 } 62 63 register_taxonomy( 64 $taxonomy_name, 65 $taxonomy_params['object'], 66 $taxonomy_params['args'] 67 ); 68 } 44 69 } 45 70 add_action( 'bp_register_taxonomies', 'bp_register_default_taxonomies' ); -
trunk/src/bp-members/bp-members-functions.php
r12694 r12728 2647 2647 2648 2648 /** 2649 * Returns labels used by the member type taxonomy. 2650 * 2651 * @since 7.0.0 2652 * 2653 * @return array 2654 */ 2655 function bp_get_member_type_tax_labels() { 2656 2657 /** 2658 * Filters Member type taxonomy labels. 2659 * 2660 * @since 7.0.0 2661 * 2662 * @param array $value Associative array (name => label). 2663 */ 2664 return apply_filters( 2665 'bp_get_member_type_tax_labels', 2666 array( 2667 'name' => _x( 'Member types', 'Member type taxonomy name', 'buddypress' ), 2668 'singular_name' => _x( 'Member type', 'Member type taxonomy singular name', 'buddypress' ), 2669 'search_items' => _x( 'Search Member types', 'Member type taxonomy search items label', 'buddypress' ), 2670 'popular_items' => _x( 'Most used Member types', 'Member type taxonomy popular items label', 'buddypress' ), 2671 'all_items' => _x( 'All Member types', 'Member type taxonomy all items label', 'buddypress' ), 2672 'edit_item' => _x( 'Edit Member type', 'Member type taxonomy edit item label', 'buddypress' ), 2673 'view_item' => _x( 'View Member type', 'Member type taxonomy view item label', 'buddypress' ), 2674 'update_item' => _x( 'Update Member type', 'Member type taxonomy update item label', 'buddypress' ), 2675 'add_new_item' => _x( 'Add new Member type', 'Member type taxonomy add new item label', 'buddypress' ), 2676 'new_item_name' => _x( 'New Member type name', 'Member type taxonomy new item name label', 'buddypress' ), 2677 'separate_items_with_commas' => _x( 'Separate Member types with commas', 'Member type taxonomy separate items with commas label', 'buddypress' ), 2678 'add_or_remove_items' => _x( 'Add or remove Member types', 'Member type taxonomy add or remove items label', 'buddypress' ), 2679 'choose_from_most_used' => _x( 'Choose from the most used Member types', 'Member type taxonomy choose from most used label', 'buddypress' ), 2680 'not_found' => _x( 'No Member types found', 'Member type taxonomy not found label', 'buddypress' ), 2681 'no_terms' => _x( 'No Member types', 'Member type taxonomy no terms label', 'buddypress' ), 2682 'items_list_navigation' => _x( 'Member types list navigation', 'Member type taxonomy items list navigation label', 'buddypress' ), 2683 'items_list' => _x( 'Member types list', 'Member type taxonomy items list label', 'buddypress' ), 2684 'back_to_items' => _x( 'Back to all Member types', 'Member type taxonomy back to items label', 'buddypress' ), 2685 // Specific to BuddyPress. 2686 'bp_type_id_label' => _x( 'Member Type ID', 'BP Member type ID label', 'buddypress' ), 2687 'bp_type_id_description' => _x( 'Enter a lower-case string without spaces or special characters (used internally to identify the member type).', 'BP Member type ID description', 'buddypress' ), 2688 ) 2689 ); 2690 } 2691 2692 /** 2693 * Returns arguments used by the Member type taxonomy. 2694 * 2695 * @since 7.0.0 2696 * 2697 * @return array 2698 */ 2699 function bp_get_member_type_tax_args() { 2700 2701 /** 2702 * Filters Member type taxonomy args. 2703 * 2704 * @since 7.0.0 2705 * 2706 * @param array $value Associative array (key => arg). 2707 */ 2708 return apply_filters( 2709 'bp_get_member_type_tax_args', 2710 array_merge( 2711 array( 2712 'description' => _x( 'BuddyPress Member types', 'Member type taxonomy description', 'buddypress' ), 2713 'labels' => array_merge( bp_get_member_type_tax_labels(), bp_get_taxonomy_common_labels() ), 2714 ), 2715 bp_get_taxonomy_common_args() 2716 ) 2717 ); 2718 } 2719 2720 /** 2721 * Registers the Member type metadata. 2722 * 2723 * @since 7.0.0 2724 */ 2725 function bp_register_member_type_metadata() { 2726 $type_taxonomy = bp_get_member_type_tax_name(); 2727 2728 foreach ( bp_get_type_metadata_schema( false, $type_taxonomy ) as $meta_key => $meta_args ) { 2729 bp_register_type_meta( $type_taxonomy, $meta_key, $meta_args ); 2730 } 2731 } 2732 add_action( 'bp_register_type_metadata', 'bp_register_member_type_metadata' ); 2733 2734 /** 2649 2735 * Register a member type. 2650 2736 *
Note: See TracChangeset
for help on using the changeset viewer.