facetwp add a taxonomy type source

djrmom

{{gist file=”custom-hooks.php” lang=”php”}}
<?php

/**
* add additional source to select as Taxonomy Types
*/
add_filter( ‘facetwp_facet_sources’, function( $sources ) {

$sources[‘posts’][‘choices’][‘tax_type’] = ‘Taxonomy Types’;
return $sources;

}, 10);

/**
* Create custom row indexer
*/
add_filter( ‘facetwp_indexer_row_data’, function( $rows, $args ) {

if ( ‘tax_type’ == $args[‘defaults’][‘facet_source’] ) {

$taxes = get_post_taxonomies( $args[‘defaults’][‘post_id’] );

if ( empty( $taxes ) ) {
return false;
}

$output = array();

foreach ( $taxes as $tax ) {

$terms = wp_get_post_terms( $args[‘defaults’][‘post_id’], $tax );

if ( is_wp_error( $terms ) || empty( $terms ) ) {
continue;
}

$tax_type = get_taxonomy( $tax );

if ( ! $tax_type->public ) {
continue;
}

$params = $args[‘defaults’];
$params[‘facet_value’] = $tax;
$params[‘facet_display_value’] = esc_html( $tax_type->label );
$output[] = $params;
}

return $output;
}

return $rows;

}, 10, 2 );
{{/gist}}