私はこのようなクエリを実行したいです。
$wpdb->prepare( "SELECT * ... from ... WHERE ( post_title LIKE '%%%s%%' or post_content LIKE '%%%s%%' )..., $string );
1つの条件のみを使用してクエリを実行すると、うまくいきます。
$wpdb->prepare( "SELECT * ... from ... WHERE ( post_title LIKE '%%%s%%' )..., $string );
最初のクエリのエラーは何ですか?
あなたの最初の部分コードはこの部分コードだと思います。
$wpdb->prepare( "SELECT * ... from ... WHERE ( post_title LIKE '%%%s%%' or post_content LIKE '%%%s%%' )..., $string, $string );
(%sを使って)指定したのと同じ数の引数をクエリに渡す必要があります。
$like = '%'. $wpdb->esc_like($searchExpression) . '%';
$sql_content = $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE ( post_title LIKE '%%%s%%' or post_content LIKE '%%%s%%' )", $like, $like );
$post_id = $wpdb->get_var($sql_content);
これはクレジットuser998163から働きました