ГлавнаяWordpressCodex → Класс WordPress для работы с Базой Данных (wpdb сlass)

Класс WordPress для работы с Базой Данных (wpdb сlass)

Комментариев: 17Класс WordPress для работы с Базой Данных (wpdb сlass)
  • Отлично, сойдет за универсальную шпаргалку

    ОТВЕТИТЬ ↓
  • Это перевод страницы из кодекса? Почему бы вам тогда не запостить как дополнительный перевод на codex.wordpress.org?
    В целом очень понятно, мне понравилось) Было бы интересно прочитать еще про кэширование sql-запросов WordPress. smile

    ОТВЕТИТЬ ↓
    • Да, перевод, правда очень вольный. Я даже не переводил, а писал как вижу, взяв от туда структуру и примеры.

      Этот текст в форматировании нуждается (коды, выделения всякие), как там это делается я знакомится не хочу, долго это все. И вообще, кросспостить туда как-то не есть гуд - поисковики сочтут еще за оригинал, а мой блог под трибунал laugh

      ОТВЕТИТЬ ↓
  • Автор молодец! Хоть и перевод, но переведено понятно.

    ОТВЕТИТЬ ↓
    • Там перевода процентов 50%, корень статьи — мое понимание.

      ОТВЕТИТЬ ↓
  • Автору респект, пытаюсь расковырять механизм работы вордпресса с базой данныйх, только тут все написано понятно. Еще было бы интересно про работу с кэшем почитать, т.е сделать так чтобы главная страница в кэше обновлялась каждые 5 секунд? Можеть знаешь как такое сделать. Есть идея интересного проекта хочешь посотрудничать?

    ОТВЕТИТЬ ↓
    • Рад что пригодилась статья.

      Написать про работу с кэшем - хорошая идея, возьму на вооружение. Мне самому интересно побольше узнать о кэше ВП smile

      страница в кэше обновлялась каждые 5 секунд?

      А какой плагин кэшированимя используется или как у вас страницы кэшируются?

      хочешь посотрудничать?

      Напишите подробнее в обратную связь.

      ОТВЕТИТЬ ↓
  • Помогите мне, плиз. Есть плагин Advanced Custom Field чтобы выводить произвольные поля к записи. Поля эти хранятся в таблице wp_acf_fields. Там есть столбец label с названием произвольного поля. Допустим я хочу вывести к записи три поля, к примеру:
    Доставка
    Наличие
    Состояние
    Соответственно сделал три поля. если их заполнить в записи, то выводятся только значения этих полей, к примеру
    в черте города
    да
    хорошее
    т.е. нет вначале названий самих полей. Названия полей хранятся в базе, значение label
    Я сделал такой запрос к базе:

    <?php
    $title_omben = $wpdb->get_var($wpdb->prepare("SELECT label FROM $wpdb->wp_acf_fields WHERE id=3"));
    echo '<p>Доставка: ' . $title_omben . '</p>';
    ?>
    

    Но почему то не работает, не подскажите как правильно запрос сделать?

    ОТВЕТИТЬ ↓
    • Я очень плохо знаком с этим плагином и не знаю что-там и как устроено. Запросом к БД названия полей выводить не правильно! Поля создаются раз и на долго, поэтому названия полей обычно выводятся, просто написав это самое название. В любому случае, чтобы получить значение поля, нужно знать его название... Соответственно, названия полей хранятся где-то в переменных.

      ОТВЕТИТЬ ↓
      • Ерунду говорите - ладно если на движке 1 сайт, тогда да - можно имена таблиц в явном виде указывать. А если на движке 2 .. или 10 сайтов - и каждый использует свои префиксы таблиц? Тогда по вашему для каждого отдельный код писать?

        ОТВЕТИТЬ ↓
        • Ппц, я не про названия таблиц, а про названия произвольных полей! К примеру, возьмем название title, нет никакой разницы в каком блоге, и с каким префиксом таблицы оно используется — поле всегда будет назваться title и так и надо писать, не нужно лишний запрос делать ради этого.
          Хотя я щас этого лишнего запроса чет не вижу smile Немного не в тему я ответил, но ничего неправильного не сказал!

          Вообще, наши дебаты никак не помогут Евгению. Если есть что сказать по существу, то говорите, а говорить об ошибках, не называя при этом правильного ответа как-то не круто...

          ОТВЕТИТЬ ↓
  • Так, не спорьте, я сделал, вот реализация

       <?php
       $value_omben = $wpdb->get_var($wpdb->prepare("SELECT value FROM wp_acf_values WHERE field_id=1 AND post_id=".get_the_ID().""));
                    if(isset($value_omben)&&!empty($value_omben)){
                    $title_omben = $wpdb->get_var($wpdb->prepare("SELECT label FROM wp_acf_fields WHERE id=1"));
                    echo '<p>' . $title_omben.': '.$value_omben . '</p>';
                    }
    
       $value_zabrat = $wpdb->get_var($wpdb->prepare("SELECT value FROM wp_acf_values WHERE field_id=2 AND post_id=".get_the_ID().""));
                    if(isset($value_zabrat)&&!empty($value_zabrat)){
                    $title_kak_zabrat = $wpdb->get_var($wpdb->prepare("SELECT label FROM wp_acf_fields WHERE id=2"));
                    echo '<p>' . $title_kak_zabrat.': '.$value_zabrat . '</p>';
                    }
       $value_cost = $wpdb->get_var($wpdb->prepare("SELECT value FROM wp_acf_values WHERE field_id=3 AND post_id=".get_the_ID().""));
                    if(isset($value_cost)&&!empty($value_cost)){
                    $title_cost = $wpdb->get_var($wpdb->prepare("SELECT label FROM wp_acf_fields WHERE id=3"));
                    echo '<p>' . $title_cost.': '.$value_cost . '</p>';
                    }  ?>
    
    ОТВЕТИТЬ ↓
  • Спасибо! Очень помогла статья! тыцнул вам гугл+)

    ОТВЕТИТЬ ↓
Форма комментирования

¤ Вставляйте код кнопкой: "Код" (php, js, html, css, sql);
¤ Выделяйте HTML код кнопкой: "Выделить" (<div>);
¤ Перед отправкой комментария используйте "Превью";
¤ Не пишите спам/бред — бесполезно!

Подписаться на комментарии без комментирования:

X

Забыли пароль?