HEX
Server: LiteSpeed
System: Linux cde4.duelhost.dk 4.18.0-553.34.1.lve.el8.x86_64 #1 SMP Thu Jan 9 16:30:32 UTC 2025 x86_64
User: dmhkjfau (1027)
PHP: 7.4.33
Disabled: exec,system,passthru,shell_exec,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/dmhkjfau/public_html/wp-content/plugins/wp-seopress/src/Services/SearchAttachment.php
<?php // phpcs:ignore

namespace SEOPress\Services;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * SearchAttachment
 */
class SearchAttachment {

	/**
	 * The searchByUrl function.
	 *
	 * @param string $url The url.
	 *
	 * @return array
	 */
	public function searchByUrl( $url ) { // phpcs:ignore -- TODO: check if method is outside this class before renaming.
		global $wpdb;
		$parsed_url = wp_parse_url( $url );
		$path       = $parsed_url['path'];

		// Extract the file name without the size attribute.
		$filename       = basename( $path );
		$filename_parts = explode( '-', $filename );
		array_pop( $filename_parts ); // Remove the size attribute part.
		$clean_filename = implode( '-', $filename_parts );

		$limit = apply_filters( 'seopress_search_attachment_result_limit', 50 );
		if ( $limit > 200 ) {
			$limit = 200;
		}
		$data = $wpdb->get_results(
			$wpdb->prepare(
				"
			SELECT *
			FROM $wpdb->posts p
            WHERE p.guid LIKE %s
            AND p.post_type = 'attachment'
			LIMIT %d",
				'%' . $clean_filename . '%',
				$limit
			),
			ARRAY_A
		);

		foreach ( $data as $key => $value ) {
			$data[ $key ] = $value['ID'];
		}

		return $data;
	}
}