| Server IP : 216.238.66.20 / Your IP : 216.73.217.142 Web Server : nginx/1.30.4 System : Linux woropds 5.15.0-187-generic #197-Ubuntu SMP Fri Jul 17 19:17:01 UTC 2026 x86_64 User : root ( 0) PHP Version : 8.2.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/sweetheart.mx/htdocs/wp-content/plugins/pods/src/Pods/Theme/ |
Upload File : |
<?php
namespace Pods\Theme;
// Don't load directly.
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
use Exception;
use WP_Query;
/**
* WP_Query specific functionality.
*
* @since 2.8.0
*/
class WP_Query_Integration {
/**
* Add the class hooks.
*
* @since 2.8.0
*/
public function hook() {
add_action( 'pre_get_posts', [ $this, 'show_cpt_on_core_taxonomy_archive' ] );
}
/**
* Remove the class hooks.
*
* @since 2.8.0
*/
public function unhook() {
remove_action( 'pre_get_posts', [ $this, 'show_cpt_on_core_taxonomy_archive' ] );
}
/**
* Show Custom Post Type on core Taxonomy archive.
*
* @since 2.8.0
*
* @param WP_Query $query The WP_Query instance.
*/
public function show_cpt_on_core_taxonomy_archive( $query ) {
// Skip on admin screens.
if ( is_admin() ) {
return;
}
// Skip if not on the archive we want.
if (
! empty( $query->query_vars['suppress_filters'] )
|| ! $query->is_main_query()
|| $query->is_404()
|| (
! $query->is_category()
&& ! $query->is_tag()
)
) {
return;
}
$object = $query->get_queried_object();
if ( ! isset( $object->taxonomy ) ) {
return;
}
$taxonomy = $object->taxonomy;
// Find all CPT that have this taxonomy set.
$api = pods_api();
try {
$post_types_to_show = $api->load_pods( [
'args' => [
'archive_show_in_taxonomies_' . $taxonomy => 1,
],
'names' => true,
] );
} catch ( Exception $exception ) {
pods_debug_log( $exception );
return;
}
$post_types_to_show = array_keys( $post_types_to_show );
$existing_post_types = $query->get( 'post_type' );
if ( empty( $existing_post_types ) ) {
$existing_post_types = [
'post',
];
} elseif ( ! is_array( $existing_post_types ) ) {
$existing_post_types = (array) $existing_post_types;
}
$post_types_to_show = array_unique( array_merge( $existing_post_types, $post_types_to_show ) );
$query->set( 'post_type', $post_types_to_show );
}
}