MetaData.php
773 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
namespace ACP\Search\Comparison\Media;
use ACP\Search\Comparison;
use ACP\Search\Operators;
use ACP\Search\Value;
class MetaData extends Comparison\Meta {
/**
* @var string
*/
private $sub_key;
public function __construct( $sub_key ) {
$operators = new Operators( [
Operators::EQ,
Operators::CONTAINS,
] );
$this->sub_key = $sub_key;
parent::__construct( $operators, '_wp_attachment_metadata', 'post' );
}
protected function get_meta_query( $operator, Value $value ) {
if ( Operators::EQ === $operator ) {
$operator = Operators::CONTAINS;
$value = new Value(
sprintf( '"%s";%s', $this->sub_key, serialize( $value->get_value() ) ),
$value->get_type()
);
}
return parent::get_meta_query( $operator, $value );
}
}