| Server IP : 78.24.162.143 / Your IP : 216.73.216.44 Web Server : Apache System : Linux hosting.cormo.systems 5.15.0-179-generic #189-Ubuntu SMP Tue May 5 18:20:56 UTC 2026 x86_64 User : web63 ( 5058) PHP Version : 7.4.33 Disable Function : create_functions,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/clients/client34/web63/web/wp-content/plugins/pods/src/Pods/Theme/ |
Upload File : |
<?php
namespace Pods\Theme;
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 ) {
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 );
}
}