Модератор
Yuri
(@yube)
Не знаю, про какой оффсет оно говорит, но в фрагменте FROM'.$wpdb->posts.'WHERE
явно не хватает пробелов после FROM и перед WHERE.
Извините за ложный след ошибка про оффсет относится не к самому запросу, а к его результату, который ниже используется.
Пробелы не помогли. Результат запроса по-прежнему пуст. так в чем же тут дело?
Возможно, не хватает global $wpdb;
перед запросом.
в том то и дело что хватает, этот запрос работает при прямом обращении к wp_posts и не работает при указанном выше:
<?global $wpdb;
$sql = 'SELECT id, post_title, post_type FROM ' .$wpdb->posts. 'WHERE post_type="post" OR post_type="page" ORDER BY post_type';
$res = $wpdb->get_results($sql, ARRAY_A) ;
//max element
$length = array();
foreach ($res as $name) {
$length[] = mb_strlen($name['post_title']);
}
$count = count($length);
$max = $length[0];
for ($i=0; $i<$count; $i++) {
if ($length[$i] > $max) {
$max = $length[$i];
}
}
?>
Модератор
Yuri
(@yube)
<?global $wpdb;
Простите, это что за диковинная конструкция?
' .$wpdb->posts. 'WHERE
И опять нет пробела. Ну нельзя же так наплевательски относиться к синтаксису.
global $wpdb;
А как нужно объявлять глобальные переменные?
<?php
global $wpdb;
...
?>
выглядит привычнее 🙂 Однако ваш вариант тоже работает. Предполагаю, что достаточно поставить пробел перед WHERE
, как заметил YuBe.
пробелы не помогают. Я уже пробовала.
Спасибо всем, не бейте меня сильно, просто затмение мозгов какое-то. Кавычки ставила не в том шаблоне, который реально тестировался. Все получилось.