Submit
Path:
~
/
home
/
getwphos
/
public_html
/
ppine
/
wp-content
/
plugins
/
trx_addons
/
components
/
extended-taxonomy
/
File Content:
extended-taxonomy.php
<?php /** * Add Extended Taxonomy functionality * @package ThemeREX Addons * @since v1.6.49 */ // Disable direct call if ( ! defined( 'ABSPATH' ) ) { exit; } // Define component's subfolder if ( ! defined('TRX_ADDONS_EXTENDED_TAXONOMY') ) define( 'TRX_ADDONS_EXTENDED_TAXONOMY', TRX_ADDONS_PLUGIN_COMPONENTS . 'extended-taxonomy/' ); // Define prefix of the meta keys if ( ! defined('TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX') ) define( 'TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX', 'trx_addons_ext_tax_' ); // Add component to the global list if ( ! function_exists( 'trx_addons_extended_taxonomy_add_to_components' ) ) { add_filter( 'trx_addons_components_list', 'trx_addons_extended_taxonomy_add_to_components' ); function trx_addons_extended_taxonomy_add_to_components( $list = array() ) { $list['extended-taxonomy'] = array( 'title' => __( 'Extended taxonomy', 'trx_addons' ) ); return $list; } } // Check if component is enabled if ( ! function_exists( 'trx_addons_extended_taxonomy_enable' ) ) { function trx_addons_extended_taxonomy_enable() { static $enable = null; if ( $enable === null ) { $enable = trx_addons_components_is_allowed( 'components', 'extended-taxonomy' ) && apply_filters( 'trx_addons_filter_extended_taxonomy', true ); } return $enable; } } // Load required styles and scripts for the frontend if ( ! function_exists( 'trx_addons_extended_taxonomy_load_scripts_front' ) ) { add_action( "wp_enqueue_scripts", 'trx_addons_extended_taxonomy_load_scripts_front', TRX_ADDONS_ENQUEUE_SCRIPTS_PRIORITY ); function trx_addons_extended_taxonomy_load_scripts_front() { if ( trx_addons_is_on( trx_addons_get_option( 'debug_mode' ) ) ) { wp_enqueue_style( 'trx_addons-extended-taxonomy', trx_addons_get_file_url(TRX_ADDONS_EXTENDED_TAXONOMY . 'css/extended-taxonomy.css'), array(), null ); } } } // Merge component's specific styles to the single stylesheet if ( ! function_exists( 'trx_addons_extended_taxonomy_merge_styles' ) ) { add_filter( "trx_addons_filter_merge_styles", 'trx_addons_extended_taxonomy_merge_styles' ); function trx_addons_extended_taxonomy_merge_styles( $list ) { if ( trx_addons_extended_taxonomy_enable() ) { $list[ TRX_ADDONS_EXTENDED_TAXONOMY . 'css/extended-taxonomy.css' ] = true; } return $list; } } // Add admin scripts and styles if ( ! function_exists( 'trx_addons_extended_taxonomy_admin_scripts' ) ) { add_action( 'admin_enqueue_scripts', 'trx_addons_extended_taxonomy_admin_scripts' ); function trx_addons_extended_taxonomy_admin_scripts() { if ( ! trx_addons_extended_taxonomy_enable() ) { return; } wp_enqueue_style( 'trx_addons-extended_taxonomy', trx_addons_get_file_url( TRX_ADDONS_EXTENDED_TAXONOMY . 'css/admin.css' ), array(), null ); } } // Return image from the term if ( ! function_exists( 'trx_addons_get_term_image' ) ) { function trx_addons_get_term_image( $term_id = 0, $taxonomy = '', $key = '', $check_parents = false ) { $image = trx_addons_get_term_meta( array( 'term_id' => $term_id, 'taxonomy' => $taxonomy, 'key' => ! empty( $key ) ? $key : TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX . 'image_large', 'check_parents' => $check_parents ) ); // Compatibility with old versions - store an image as 'image' key if ( empty( $key ) && empty( $image ) ) { $image = trx_addons_get_term_meta( array( 'term_id' => $term_id, 'taxonomy' => $taxonomy, 'key' => 'image', 'check_parents' => $check_parents ) ); // Compatibility with oldest versions - store an image id as 'thumbnail_id' key if ( empty( $image ) ) { $image_id = trx_addons_get_term_meta( array( 'term_id' => $term_id, 'taxonomy' => '', 'key' => 'thumbnail_id', 'check_parents' => $check_parents ) ); if ( ! empty( $image_id ) ) { $image_src = wp_get_attachment_image_src( $image_id ); if ( ! empty( $image_src[0] ) ) { $image = $image_src[0]; } } } } return trx_addons_remove_protocol( $image ); } } // Return small image from the term if ( ! function_exists( 'trx_addons_get_term_image_small' ) ) { function trx_addons_get_term_image_small( $term_id = 0, $taxonomy = '', $key = '', $check_parents = false ) { $image = trx_addons_get_term_meta( array( 'term_id' => $term_id, 'taxonomy' => $taxonomy, 'key' => ! empty( $key ) ? $key : TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX . 'image_small', 'check_parents' => $check_parents ) ); return trx_addons_remove_protocol( $image ); } } // Return icon from the term if ( ! function_exists( 'trx_addons_get_term_icon' ) ) { function trx_addons_get_term_icon( $term_id = 0, $taxonomy = '', $key = '', $check_parents = false ) { return trx_addons_get_term_meta( array( 'term_id' => $term_id, 'taxonomy' => $taxonomy, 'key' => ! empty( $key ) ? $key : TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX . 'icon', 'check_parents' => $check_parents ) ); } } // Return color from the term if ( ! function_exists( 'trx_addons_get_term_color' ) ) { function trx_addons_get_term_color( $term_id = 0, $taxonomy = '', $check_parents = false ) { return trx_addons_get_term_meta( array( 'term_id' => $term_id, 'taxonomy' => $taxonomy, 'key' => TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX . 'color', 'check_parents' => $check_parents ) ); } } // Add 'Extended Taxonomy' parameters in the ThemeREX Addons Options if ( ! function_exists( 'trx_addons_extended_taxonomy_options' ) ) { add_filter( 'trx_addons_filter_options', 'trx_addons_extended_taxonomy_options'); function trx_addons_extended_taxonomy_options( $options ) { if ( trx_addons_extended_taxonomy_enable() ) { trx_addons_array_insert_before( $options, 'theme_specific_section', array( // Section 'Extended Taxonomy' 'extended_taxonomy_section' => array( "title" => esc_html__('Extended Taxonomy', 'trx_addons'), "desc" => wp_kses_data( __("Extended taxonomy settings", 'trx_addons') ), 'icon' => 'trx_addons_icon-tag', "type" => "section" ), 'extended_taxonomy_info' => array( "title" => esc_html__('Extended Taxonomy', 'trx_addons') . trx_addons_get_theme_doc_link( '#themerex_addons_extended_taxonomy' ), "desc" => wp_kses_data( __("Add some extended taxonomy attributes", 'trx_addons') ), "type" => "info" ), "extended_taxonomy_attributes" => array( "title" => esc_html__("Attributes to show", 'trx_addons'), "desc" => wp_kses_data( __("Select taxonomy attributes to show", 'trx_addons') ), "dir" => 'horizontal', "std" => array('color' => 1, 'image' => 1, 'icon' => 1), "options" => apply_filters('trx_addons_filter_extended_taxonomy_attributes', array( 'color' => esc_html__("Text color", 'trx_addons'), 'color_hover' => esc_html__("Text hover", 'trx_addons'), 'color_bg' => esc_html__("Background color", 'trx_addons'), 'color_bg_hover' => esc_html__("Background hover", 'trx_addons'), 'image_large' => esc_html__("Large image", 'trx_addons'), 'image_small' => esc_html__("Small image", 'trx_addons'), 'icon' => esc_html__("Font icon", 'trx_addons'), ) ), "type" => "checklist" ), "extended_taxonomy_tax" => array( "title" => esc_html__("Taxonomy list", 'trx_addons'), "desc" => wp_kses_data( __("Select taxonomy to add extended taxonomy in it", 'trx_addons') ), "dir" => 'horizontal', "group" => true, "std" => array( 'category' => 1, 'post_tag' => 1 ), "options" => array(), "type" => "checklist" ), ) ); } return $options; } } // Fill 'Taxonomy list' before show ThemeREX Addons Options if ( ! function_exists( 'trx_addons_extended_taxonomy_before_show_options' ) ) { add_filter( 'trx_addons_filter_before_show_options', 'trx_addons_extended_taxonomy_before_show_options', 10, 2 ); function trx_addons_extended_taxonomy_before_show_options( $options, $pt = '' ) { if ( trx_addons_extended_taxonomy_enable() && isset( $options['extended_taxonomy_tax'] ) ) { $options['extended_taxonomy_tax']['options'] = trx_addons_get_list_taxonomies_all(); } return $options; } } // Allow title image override if ( ! function_exists( 'trx_addons_extended_taxonomy_featured_image_override' ) ) { add_filter( 'trx_addons_filter_featured_image_override', 'trx_addons_extended_taxonomy_featured_image_override'); function trx_addons_extended_taxonomy_featured_image_override( $override ) { if ( empty( $override ) && trx_addons_extended_taxonomy_enable() && ( is_category() || is_tax() ) ) { $taxonomy = get_query_var( 'taxonomy' ); if ( empty( $taxonomy ) ) { $taxonomy = get_query_var( 'category_name' ); } if ( ! empty( $taxonomy ) && ( $allowed = in_array( $taxonomy, trx_addons_extended_taxonomy_get_selected_attrs( 'tax' ) ) ) ) { $override = ! get_header_image(); } } return $override; } } // Return list of allowed custom post's taxonomies if ( ! function_exists( 'trx_addons_extended_taxonomy_get_supported_post_types' ) ) { function trx_addons_extended_taxonomy_get_supported_post_types( $prepend_inherit = false ) { $list = array(); if ( trx_addons_extended_taxonomy_enable() ) { global $wp_taxonomies; $attrs = trx_addons_extended_taxonomy_get_selected_attrs( 'tax' ); foreach ( $attrs as $tax ) { if ( ( $pt = ( isset( $wp_taxonomies[ $tax ] ) ) ? $wp_taxonomies[ $tax ]->object_type : array() ) ) { $list[] = $pt[0]; } } $list = array_unique( $list ); } return $prepend_inherit ? trx_addons_array_merge( array( 'inherit' => esc_html__( "Inherit", 'trx_addons' ) ), $list ) : $list; } } // Return terms meta value. If its meta is empty - try to get parents value if ( ! function_exists( 'trx_addons_extended_taxonomy_get_term_name' ) ) { add_filter( 'trx_addons_filter_term_name', 'trx_addons_extended_taxonomy_get_term_name', 10, 2 ); add_filter( 'trx_addons_extended_taxonomy_name', 'trx_addons_extended_taxonomy_get_term_name', 10, 2 ); function trx_addons_extended_taxonomy_get_term_name( $term_name = '', $term_obj = false ) { if ( ! trx_addons_extended_taxonomy_enable() || empty( $term_obj ) || strpos( $term_name, 'trx_addons_extended_taxonomy' ) !== false || apply_filters( 'trx_addons_filter_disallow_term_name_modify', is_admin() && ! in_array( trx_addons_get_value_gp( 'action' ), array( 'trx_addons_item_pagination', 'elementor', 'elementor_ajax', 'wp_ajax_elementor_ajax' ) ), $term_name, $term_obj ) ) { return $term_name; } $css = ''; $css_body = ''; $classes = []; $icon = ''; $term_name = $term_name ? $term_name : $term_obj->name; $attrs = trx_addons_extended_taxonomy_get_selected_attrs(); $uniqid = trx_addons_generate_id( 'extended_taxonomy_custom_' ); //sanitize_html_class(uniqid('extended_taxonomy_custom_')); if ( in_array( 'color', $attrs ) ) { $val = trx_addons_get_term_meta( array( 'term_id' => $term_obj->term_id, 'taxonomy' => $term_obj->taxonomy, 'key' => TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX . 'color', 'check_parents' => true ) ); $css_body .= empty($val) ? '' : 'color: ' . $val . ';'; } if ( in_array( 'color_bg', $attrs ) ) { $val = trx_addons_get_term_meta( array( 'term_id' => $term_obj->term_id, 'taxonomy' => $term_obj->taxonomy, 'key' => TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX . 'color_bg', 'check_parents' => true ) ); if ( ! empty( $val ) ) { $css_body .= 'background-color: ' . $val . ';'; $classes[] = 'trx_addons_extended_taxonomy_bg'; } } if ( ! empty( $css_body ) ) { $css .= ".{$uniqid} {" . $css_body . "}"; $css .= ".{$uniqid} .trx_addons_extended_taxonomy_icon {" . $css_body . "}"; $css_body = ''; } if ( in_array( 'color_hover', $attrs ) ) { $val = trx_addons_get_term_meta( array( 'term_id' => $term_obj->term_id, 'taxonomy' => $term_obj->taxonomy, 'key' => TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX . 'color_hover', 'check_parents' => true ) ); $css_body .= empty( $val ) ? '' : 'color: ' . $val . ';'; } if ( in_array( 'color_bg_hover', $attrs ) ) { $val = trx_addons_get_term_meta( array( 'term_id' => $term_obj->term_id, 'taxonomy' => $term_obj->taxonomy, 'key' => TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX . 'color_bg_hover', 'check_parents' => true ) ); $css_body .= empty( $val ) ? '' : 'background-color: ' . $val . ';'; } if ( in_array( 'icon', $attrs ) ) { $icon_font = trx_addons_get_term_meta( array( 'term_id' => $term_obj->term_id, 'taxonomy' => $term_obj->taxonomy, 'key' => TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX . 'icon', 'check_parents' => true ) ); $icon = empty( $icon_font ) || trx_addons_is_off( $icon_font ) ? '' : '<span class="trx_addons_extended_taxonomy_icon ' . $icon_font . '"></span>'; if ( empty( $icon ) ) { $icon = trx_addons_remove_protocol( trx_addons_get_term_meta( array( 'term_id' => $term_obj->term_id, 'taxonomy' => $term_obj->taxonomy, 'key' => TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX . 'image_small', 'check_parents' => true ) ) ); if ( ! empty( $icon ) ) { $trx_addons_attr = trx_addons_getimagesize( $icon ); $icon = '<img class="trx_addons_extended_taxonomy_img" src="' . esc_url( $icon ) . '" alt="' . esc_attr( $term_name ) . '" ' . ( ( ! empty( $trx_addons_attr[3] ) ) ? $trx_addons_attr[3] : '' ) . '>'; } } } if ( ! empty( $css_body ) ) { $css .= ".{$uniqid}:hover {" . $css_body . "}"; $css .= ".{$uniqid}:hover .trx_addons_extended_taxonomy_icon {" . $css_body . "}"; } if ( ! empty( $css ) ) { $css = apply_filters( 'trx_addons_extended_taxonomy_inline_css', $css, $term_obj ); trx_addons_add_inline_css( $css ); } $term_name = ( ! empty( $css ) || ! empty( $icon ) ? '<span class="trx_addons_extended_taxonomy ' . esc_attr( $uniqid ) . ( count( $classes ) > 0 ? ' ' . join( ' ', $classes ) : '' ) . '">' : '' ) . $icon . $term_name . ( ! empty( $css ) || ! empty( $icon ) ? '</span>' : '' ); return $term_name; } } // Return attribute's title if ( ! function_exists( 'trx_addons_extended_taxonomy_get_title' ) ) { function trx_addons_extended_taxonomy_get_title( $attr ) { $title = ''; switch ( $attr ) { case 'image_large': $title = esc_html__("Large image", 'trx_addons'); break; case 'image_small': $title = esc_html__("Small image", 'trx_addons'); break; case 'icon': $title = esc_html__("Font icon", 'trx_addons'); break; case 'color': $title = esc_html__("Color", 'trx_addons'); break; case 'color_hover': $title = esc_html__("Hover", 'trx_addons'); break; case 'color_bg': $title = esc_html__("Background color", 'trx_addons'); break; case 'color_bg_hover': $title = esc_html__("Background hover", 'trx_addons'); break; } return $title; } } //------------------------------------------------------- //-- Extended Taxonomy code //------------------------------------------------------- // Return list of a selected taxonomy attributes if ( ! function_exists( 'trx_addons_extended_taxonomy_get_selected_attrs' ) ) { function trx_addons_extended_taxonomy_get_selected_attrs( $attr_name = 'attributes' ) { $attrs = trx_addons_get_option( "extended_taxonomy_{$attr_name}", array(), false ); if ( is_array( $attrs ) ) { foreach ( $attrs as $pt => $val ) { if ( empty( $val ) ) { unset( $attrs[ $pt ] ); } } } return array_keys( (array)$attrs ); } } // Add actions with specific post types if ( ! function_exists( 'trx_addons_extended_taxonomy_add_actions' ) ) { add_action( 'after_setup_theme', 'trx_addons_extended_taxonomy_add_actions', 10 ); function trx_addons_extended_taxonomy_add_actions() { if ( trx_addons_extended_taxonomy_enable() ) { $tax_list = trx_addons_extended_taxonomy_get_selected_attrs( 'tax' ); if ( is_array( $tax_list ) ) { foreach ( $tax_list as $tax_name ) { // Add colors, images and icons to the term's output add_filter( "the_{$tax_name}_list", 'trx_addons_extended_taxonomy_filter_change_list', 10, 2 ); add_filter( "term_links-{$tax_name}", 'trx_addons_extended_taxonomy_filter_change_links', 10, 1 ); // Add extended fields to the add/edit term form add_action( "{$tax_name}_add_form_fields", 'trx_addons_extended_taxonomy_show_fields', 10, 1 ); add_action( "{$tax_name}_edit_form_fields", 'trx_addons_extended_taxonomy_show_fields', 10, 1 ); // Save extended fields add_action( "create_{$tax_name}", 'trx_addons_extended_taxonomy_save_meta' ); add_action( "edited_{$tax_name}", 'trx_addons_extended_taxonomy_save_meta' ); // Add columns to the terms list in the admin panel add_filter( "manage_edit-{$tax_name}_columns", 'trx_addons_extended_taxonomy_add_custom_column', 9 ); add_action( "manage_{$tax_name}_custom_column", 'trx_addons_extended_taxonomy_fill_custom_column', 9, 3 ); } } } } } if ( ! function_exists( 'trx_addons_extended_taxonomy_add_get_the_terms' ) ) { add_action( 'init', 'trx_addons_extended_taxonomy_add_get_the_terms' ); add_action( 'wp_head', 'trx_addons_extended_taxonomy_add_get_the_terms' ); /** * Add a handler for the filter 'get_the_terms' to change the terms list with extended taxonomy * * @hooked init (for AJAX and REST API requests) * @hooked wp_head (for frontend requests - should be after the loop started) */ function trx_addons_extended_taxonomy_add_get_the_terms() { static $added = false; if ( ! $added && trx_addons_extended_taxonomy_enable() ) { if ( apply_filters( 'trx_addons_filter_extended_taxonomy_filter_get_the_terms', false ) ) { add_filter( 'get_the_terms', 'trx_addons_extended_taxonomy_filter_change_terms', 10, 3 ); $added = true; } } } } if ( ! function_exists( 'trx_addons_extended_taxonomy_filter_change_terms' ) ) { /** * Filters the list of terms attached to the given post. * * @hooked get_the_terms * * @param WP_Term[]|WP_Error $terms Array of attached terms, or WP_Error on failure. * @param int $post_id Post ID. * @param string $taxonomy Name of the taxonomy. * * @return WP_Term[]|WP_Error Array of WP_Term objects on success, WP_Error otherwise. */ function trx_addons_extended_taxonomy_filter_change_terms( $terms, $post_id, $taxonomy ) { static $tax_list = false; if ( $tax_list === false ) { $tax_list = trx_addons_extended_taxonomy_get_selected_attrs( 'tax' ); } if ( ! empty( $taxonomy ) && ! empty( $tax_list ) && in_array( $taxonomy, $tax_list ) ) { $terms = trx_addons_extended_taxonomy_filter_change_list( $terms, $post_id ); } return $terms; } } // Modify taxonomy name, one by one by if ( ! function_exists( 'trx_addons_extended_taxonomy_filter_change_list' ) ) { // Handler of the add_filter( "the_{$tax_name}_list", 'trx_addons_extended_taxonomy_filter_change_list', 10, 2 ); function trx_addons_extended_taxonomy_filter_change_list( $terms, $post_id = 0 ) { if ( ! is_array( $terms ) ) { $terms = array( $terms ); } foreach ( $terms as $k => $term ) { $terms[ $k ]->name = apply_filters( 'trx_addons_extended_taxonomy_name', $term->name, $term ); } return $terms; } } // Modify taxonomy links, one by one by if ( ! function_exists( 'trx_addons_extended_taxonomy_filter_change_links' ) ) { // Handler of the add_filter( "term_links-{$tax_name}", 'trx_addons_extended_taxonomy_filter_change_links', 10, 1 ); function trx_addons_extended_taxonomy_filter_change_links ( $links ) { if ( ! is_array( $links ) ) { $links = array( $links ); } $term_slug = str_replace( 'term_links-', '', current_filter() ); foreach ( $links as &$link ) { preg_match_all( '/>(.*?)<\/a>/', $link, $matches ); $old_name = isset( $matches[1][0] ) ? $matches[1][0] : false; if ( $old_name ) { $term = get_term_by( 'name', $old_name, $term_slug ); $term->name = apply_filters( 'trx_addons_extended_taxonomy_name', $term->name, $term ); $link = str_replace( $old_name . '</a>', $term->name . '</a>', $link ); } } return $links; } } if ( ! function_exists( 'trx_addons_extended_taxonomy_show_fields' ) ) { // Handler of the add_action("{$tax_name}_add_form_fields", 'trx_addons_extended_taxonomy_show_fields', 10, 1); // Handler of the add_action("{$tax_name}_edit_form_fields", 'trx_addons_extended_taxonomy_show_fields', 10, 1); function trx_addons_extended_taxonomy_show_fields( $term = false ) { $attrs = trx_addons_extended_taxonomy_get_selected_attrs(); if ( ! is_array( $attrs ) || count( $attrs ) < 1 ) { return; } $term_id = ! empty( $term->term_id ) ? $term->term_id : 0; $term_tax = ! empty( $term->taxonomy ) ? $term->taxonomy : 0; trx_addons_enqueue_wp_color_picker(); // Show Icon and Image fields if ( in_array( 'image_large', $attrs ) ) { // Category's image $attrs = array_diff( $attrs, array( 'image_large' ) ); echo ( (int) $term_id > 0 ? '<tr' : '<div') . ' class="form-field">' . ( (int) $term_id > 0 ? '<th valign="top" scope="row">' : '<div>' ); ?><label for="trx_addons_taxonomy_image_large"><?php esc_html_e( 'Large image URL:', 'trx_addons' ); ?></label><?php echo ( (int) $term_id > 0 ? '</th>' : '</div>' ) . ( (int) $term_id > 0 ? '<td valign="top">' : '<div>' ); $term_img = (int) $term_id > 0 ? trx_addons_get_term_image( $term_id, $term_tax ) : ''; ?><input type="hidden" id="trx_addons_taxonomy_image_large" class="trx_addons_image_selector_field" name="trx_addons_taxonomy_image_large" value="<?php echo esc_url( $term_img ); ?>"><?php if ( empty( $term_img ) ) { $term_img = trx_addons_get_no_image(); } trx_addons_show_layout( trx_addons_options_show_custom_field( 'trx_addons_category_image_button', array( 'type' => 'mediamanager', 'linked_field_id' => 'trx_addons_taxonomy_image_large' ), $term_img ) ); echo (int) $term_id > 0 ? '</td></tr>' : '</div></div>'; } if ( in_array( 'image_small', $attrs ) ) { // Category's icon $attrs = array_diff( $attrs, array( 'image_small' ) ); echo ( (int) $term_id > 0 ? '<tr' : '<div' ) . ' class="form-field">' . ( (int) $term_id > 0 ? '<th valign="top" scope="row">' : '<div>' ); ?><label for="trx_addons_taxonomy_image_small"><?php esc_html_e( 'Small image (icon) URL:', 'trx_addons' ); ?></label><?php echo ( (int) $term_id > 0 ? '</th>' : '</div>' ) . ( (int) $term_id > 0 ? '<td valign="top">' : '<div>' ); $term_img = (int) $term_id > 0 ? trx_addons_get_term_image_small( $term_id, $term_tax ) : ''; ?><input type="hidden" id="trx_addons_taxonomy_image_small" class="trx_addons_thumb_selector_field" name="trx_addons_taxonomy_image_small" value="<?php echo esc_url( $term_img ); ?>"><?php if ( empty( $term_img ) ) { $term_img = trx_addons_get_no_image(); } trx_addons_show_layout( trx_addons_options_show_custom_field( 'trx_addons_category_icon_button', array( 'type' => 'mediamanager', 'linked_field_id' => 'trx_addons_taxonomy_image_small' ), $term_img ) ); echo (int) $term_id > 0 ? '</td></tr>' : '</div></div>'; } foreach ( $attrs as $attr_name ) { $args = array( 'val' => is_object( $term ) ? get_term_meta( $term_id, TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX . $attr_name, true ) : '', 'std' => '', 'desc' => '', 'title' => trx_addons_extended_taxonomy_get_title( $attr_name ), 'type' => explode( '_', $attr_name )[0] ); if ( $attr_name === 'icon' ) { $style = trx_addons_get_setting('icons_type'); $args['style'] = $style; $args['type'] = 'icons'; $args['options'] = trx_addons_get_list_icons( $style ); } echo ( (int) $term_id > 0 ? '<tr' : '<div' ) . ' class="form-field trx-addons-extended-taxonomy">' . ( (int) $term_id > 0 ? '<td valign="top" colspan="2">' : '' ); echo trx_addons_options_show_field( $attr_name, $args ); echo (int) $term_id > 0 ? '</td></tr>' : '</div>'; } } } // Save the fields to the taxonomy, using our callback function if ( ! function_exists( 'trx_addons_extended_taxonomy_save_meta' ) ) { function trx_addons_extended_taxonomy_save_meta( $term_id ) { $attrs = trx_addons_extended_taxonomy_get_selected_attrs(); if ( ! is_array( $attrs ) || count( $attrs ) < 1 ) { return; } if ( isset( $_POST['trx_addons_taxonomy_image_large'] ) ) { trx_addons_set_term_meta( array( 'term_id' => $term_id, 'key' => TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX . 'image_large' ), $_POST['trx_addons_taxonomy_image_large'] ); } if ( isset( $_POST['trx_addons_taxonomy_image_small'] ) ) { trx_addons_set_term_meta( array( 'term_id' => $term_id, 'key' => TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX . 'image_small' ), $_POST['trx_addons_taxonomy_image_small'] ); } foreach ( $attrs as $attr_name ) { if ( isset( $_POST[ "trx_addons_options_field_{$attr_name}" ] ) ) { trx_addons_set_term_meta( array( 'term_id' => $term_id, 'key' => TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX . $attr_name ), $_POST[ "trx_addons_options_field_{$attr_name}" ] ); } } } } // Create additional column in the terms lists //------------------------------------------------------------------ if ( ! function_exists( 'trx_addons_extended_taxonomy_add_custom_column' ) ) { // Handler of the add_filter( "manage_edit-{$tax_name}_columns", 'trx_addons_extended_taxonomy_add_custom_column', 9); function trx_addons_extended_taxonomy_add_custom_column( $columns ){ $columns['term_image_large'] = esc_html__('Large image', 'trx_addons'); $columns['term_image_small'] = esc_html__('Small image', 'trx_addons'); $columns['term_attrs'] = esc_html__('Extended', 'trx_addons'); return $columns; } } // Fill image column in the categories list if ( ! function_exists( 'trx_addons_extended_taxonomy_fill_custom_column' ) ) { // Handler of the add_action( "manage_{$tax_name}_custom_column", 'trx_addons_extended_taxonomy_fill_custom_column', 9, 3); function trx_addons_extended_taxonomy_fill_custom_column( $output = '', $column_name = '', $term_id = 0 ) { $tax_name = str_replace( array( 'manage_', '_custom_column' ), '', current_filter() ); if ( $column_name == 'term_image_large' ) { $term_img = trx_addons_get_term_image( $term_id, $tax_name ); if ( ! empty( $term_img ) ) { ?><img class="trx_addons_image_selector_preview trx_addons_category_image_preview" src="<?php echo esc_url( trx_addons_add_thumb_size( $term_img, trx_addons_get_thumb_size( 'tiny' ) ) ); ?>" alt="<?php esc_attr_e( "Large image", 'trx_addons' ); ?>"><?php } } else if ( $column_name == 'term_image_small' ) { $term_img = trx_addons_get_term_image_small( $term_id, $tax_name ); if ( ! empty( $term_img ) ) { ?><img class="trx_addons_thumb_selector_preview trx_addons_category_icon_preview" src="<?php echo esc_url( trx_addons_add_thumb_size( $term_img, trx_addons_get_thumb_size( 'tiny' ) ) ); ?>" alt="<?php esc_attr_e( "Small image", 'trx_addons' ); ?>"><?php } } else if ( $column_name == 'term_attrs' ) { $attrs = trx_addons_extended_taxonomy_get_selected_attrs(); if ( is_array( $attrs ) ) { foreach( $attrs as $attr ) { if ( in_array( $attr, array( 'image_small', 'image_large' ) ) ) { continue; } $val = trx_addons_get_term_meta( array( 'term_id' => $term_id, 'taxonomy' => $tax_name, 'key' => TRX_ADDONS_EXTENDED_TAXONOMY_META_PREFIX . $attr ) ); if ( ! empty( $val ) && ! trx_addons_is_off( $val ) ) { ?><div class="trx_addons_extended_taxonomy_meta_row"> <span class="trx_addons_extended_taxonomy_meta_value<?php echo 'icon' == $attr ? ' ' . esc_attr($val) : ''; ?>"<?php if ( substr( $attr, 0, 5 ) == 'color' ) { echo ' style="background-color:' . esc_attr( $val ) . ';"'; } ?>></span> <span class="trx_addons_extended_taxonomy_meta_label"><?php echo esc_html( trx_addons_extended_taxonomy_get_title( $attr ) ); ?></span> </div><?php } } } } } }
Submit
FILE
FOLDER
Name
Size
Permission
Action
css
---
0755
extended-taxonomy.php
28184 bytes
0644
N4ST4R_ID | Naxtarrr