В зависимости от способа отправки формы вы можете выбрать один из них:
$timeframe = $_POST['timeframe'];
или
$timeframe = $_GET['timeframe'];
Чтобы передать его этой функции, я бы предложил изменить сигнатуру функции:
function filter_where($where = '', $timeframe) {
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-'.$timeframe.' days')) ."'";
return $where;
}
add_filter( 'posts_where', 'filter_where' );