Задать вопрос
Ответы пользователя по тегу MySQL
  • Как подключить 2 сайта на wordpress к одной БД?

    trampick
    @trampick
    Веб-разработчик
    Можно использовать 1 базу и 1 набор файлов для нескольких доменов. Т.е. я к примеру для мобильной и основной версии сайта использую одну и ту же тему с одной и той же бд. Во всех файлах шаблона стоит условие для вывода верстки и данных для мобильной версии и для основной.

    Возможно Вам подойдет такой способ. Тогда нужно проделать примерно такой набор действий:
    1) Настроить на сервере, что бы по другому домену обращение было к той же директории, что и у основного домена. Пусть у нас будет основной домент site.ru, а для теста test.site.ru
    2) в wp-config.php добавить такой скрипт
    if ($_SERVER['HTTP_HOST'] == 'test.site.ru') {
        define('WP_HOME', 'http://test.site.ru/');
        define('WP_SITEURL', 'http://test.site.ru/');
    }

    3) добавить в functions.php
    function is_testsite() {
        if ($_SERVER['HTTP_HOST'] == 'test.site.ru') {
            return true;
        } else {
            return false;
        }
    }

    4) в нужных файлах темы использовать конструкцию типа:
    if ( is_testsite()) {
    //вывод для test.site.ru
    } else {
    //вывод для site.ru
    }

    5) Вроде бы все:)
    Ответ написан
    Комментировать
  • WordPress - количество постов с определенным meta?

    trampick
    @trampick
    Веб-разработчик
    Можно в таком духе:
    <?php
    global $wpdb;
    $meta_key = 'my_key';
    $wpdb->get_results( "SELECT COUNT(*) FROM wp_postmeta WHERE meta_key = '$meta_key '" );
    echo  $wpdb->num_rows . ' Найдено';
    ?>

    Минус -часто бывает что пост удален, а поле meta существует.

    Другой вариант через inner join, но он увесистый.
    Ответ написан
  • Как изменить URL-адрес одной страницы на другую через SQL-запрос?

    trampick
    @trampick
    Веб-разработчик
    По умолчанию в WP url записей и страниц хранятся в таблице wp_posts в поле post_meta. Значения этого поля должно быть уникальным.
    Алгоритм по которому я бы написал скрипт:
    1 создал массив данных со старым урлом и новым урлом.
    2 Получил все записи из таблицы wp_posts(нужно брать записи только с определенным значением post_type)
    3 Прошел бы циклом по все записям. Смотрел бы каждой записи есть ли post_name в массиве с исходными данными в ячейки со старым урлом. Если находится, то обновляем значение этого поля на новый url.

    Для реализации потребуется global $wpdb, $wpdb->get_results(), $wpdb->update().
    Ответ написан
    Комментировать
  • Как в Wordpress скопировать содержимое Excerpt в Custom Field для всех записей?

    trampick
    @trampick
    Веб-разработчик
    Примерно так. Можно вставить в functions.php вашей темы.
    $recent = new WP_Query("posts_per_page=-1&post_type=post");
    while ($recent->have_posts()) {
      $recent->the_post();
      update_post_meta(get_the_ID(),'custom_field',get_the_excerpt());
    }
    Ответ написан
    Комментировать
  • Как отслеживать изменения базы данных WordPress?

    trampick
    @trampick
    Веб-разработчик
    Нужно понять в какие таблицы вносят данные. Делать sql дамп каждой таблицы по отдельности. Потом сравнивать текущую версию с предыдущей например через хеш.
    Но есть проблемы, к примеру в таблицу wp_options wordpress сам постоянно вносит изменения.
    Я бы советовал искать уязвимость там где взламывают.
    Поменять пароли от mysql и бд.
    Настроить доступ к phpmyadmin по определенному ip.
    Промониторить всех пользователей в системе wordpress и удалить лишних, которые являются ботами.
    Поменять пароль от админа.
    Сделать доступ к странице wp-login через доп пароль(не помню как называется). Можно через .htaccess сделать пароль к определенным страницам. www.anchous.info/zashhishhaem-worpress-ot-brutforsa
    Просканировать антивирусом весь сайт. Возможно заменить файлы самого wordpress на файлы из новой версии.
    Ответ написан
  • Как сделать выборку по мета полям в wordpress?

    trampick
    @trampick
    Веб-разработчик
    $query = new WP_Query( array(
        'meta_query' => array(
            array(
    			'key'     => 'close_date',
    			'value'   => '',
    			'compare' => '!=',
    	),
         )
    ) );

    Попробуй так
    Ответ написан
    Комментировать