0 ? $post_id : get_the_ID(); if ( ! is_int( $target_post_id ) || $target_post_id <= 0 ) { return ''; } return self::render_for_post( $target_post_id ); } /** * @param array $settings Settings. * @param int $post_id Post ID. * * @return bool */ private static function can_render_base( array $settings, int $post_id ): bool { if ( ! ModuleSettings::is_enabled( 'relatedPosts' ) ) { return false; } if ( ! ModuleSettings::is_enabled( 'linkSuggestions' ) ) { return false; } $post_type = get_post_type( $post_id ); if ( ! is_string( $post_type ) || '' === $post_type ) { return false; } $enabled_post_types = isset( $settings['enabled_post_types'] ) && is_array( $settings['enabled_post_types'] ) ? array_values( array_filter( array_map( 'strval', $settings['enabled_post_types'] ) ) ) : array( 'post' ); return in_array( $post_type, $enabled_post_types, true ); } /** * Manual output gate (template tag/shortcode). * * @param array $settings Settings. * @param int $post_id Post ID. * * @return bool */ private static function can_render_manual( array $settings, int $post_id ): bool { if ( empty( $settings['enabled'] ) ) { return false; } return self::can_render_base( $settings, $post_id ); } /** * Auto inject gate. * * @param array $settings Settings. * @param int $post_id Post ID. * * @return bool */ private static function can_render_auto( array $settings, int $post_id ): bool { if ( empty( $settings['auto_inject_enabled'] ) ) { return false; } return self::can_render_base( $settings, $post_id ); } }