'Version' ] ); define( 'abddir_VERSION', $abddir_plugin_data['Version'] ); define( 'abddir_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); define( 'abddir_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); define( 'abddir_PLUGIN_FILE', __FILE__ ); // Exclude abddir_listing from WordPress link picker (Insert/edit link dialog) add_filter( 'wp_link_query_args', function( $query ) { if ( isset( $query['post_type'] ) && is_array( $query['post_type'] ) ) { $query['post_type'] = array_diff( $query['post_type'], [ 'abddir_listing' ] ); } return $query; } ); require_once abddir_PLUGIN_DIR . 'includes/helpers.php'; require_once abddir_PLUGIN_DIR . 'includes/cpt-directory.php'; require_once abddir_PLUGIN_DIR . 'includes/cpt.php'; require_once abddir_PLUGIN_DIR . 'includes/taxonomy.php'; require_once abddir_PLUGIN_DIR . 'includes/meta.php'; require_once abddir_PLUGIN_DIR . 'includes/shortcode.php'; require_once abddir_PLUGIN_DIR . 'includes/widget.php'; require_once abddir_PLUGIN_DIR . 'includes/ajax.php'; require_once abddir_PLUGIN_DIR . 'includes/settings.php'; require_once abddir_PLUGIN_DIR . 'admin/admin-page.php'; // Render the listing detail page by injecting our markup into the theme's own // content area (via the_content). This works on both classic and block themes // without calling get_header()/get_footer() directly, so it emits no // "theme without header.php" deprecation on block themes. add_filter( 'the_content', function( $content ) { if ( is_singular( 'abddir_listing' ) && in_the_loop() && is_main_query() ) { $tpl = abddir_PLUGIN_DIR . 'templates/single-listing.php'; if ( file_exists( $tpl ) ) { ob_start(); include $tpl; return ob_get_clean(); } } return $content; } ); // Enqueue the public CSS on single listing pages (the detail markup uses it). add_action( 'wp_enqueue_scripts', function() { if ( is_singular( 'abddir_listing' ) ) { wp_enqueue_style( 'abddir-public-css', abddir_PLUGIN_URL . 'public/css/directory.css', [], abddir_VERSION ); } } ); register_activation_hook( __FILE__, 'abddir_activate' ); register_deactivation_hook( __FILE__, 'abddir_deactivate' ); function abddir_activate() { abddir_register_directory_cpt(); abddir_register_cpt(); abddir_register_taxonomies(); flush_rewrite_rules(); if ( ! get_option('abddir_install_date') ) { update_option( 'abddir_install_date', current_time('timestamp') ); } } function abddir_deactivate() { flush_rewrite_rules(); }