files's Профиль
Гуру
1250
Баллы

Вопросов
1

Ответы
90

  • Гуру Вопрос задан в 22.08.2015 в Темы (шаблоны).

      Все зависит от используемой Вами темы! Тут нельзя давать общие рекомендации по правке Вашего кода

      • 1443 просмотров
      • 3 ответов
      • 0 голосов
    • Гуру Вопрос задан в 15.02.2015 в Безопасность.

      Закрыть сайт можно и на обслуживание https://faqwp.com/question/kak-v-wordpress-vklyuchit-rezhim-tehnicheskogo-obsluzhivaniya

      или ограничить доступ так в .htaccess:

       Order Deny,Allow
       Deny from all
       Allow from 192.122.0.
       

      Данный код запретит доступ для всех, кроме сети 192.122.0/*

      Если над сайтом ведутся работы, то лучше на обслуживание поставить. А с ботами естественно, нужно бороться – способы защиты админки WordPress

      • 4241 просмотров
      • 2 ответов
      • 2 голосов
    • Гуру Вопрос задан в 15.02.2015 в Меню.

      Создать иконки к меню на сайте WordPress можно и без плагинов, собственными CSS стилями. На это уйдет больше времени (нежели с помощью плагина), но кода получится меньше (без плагина воообще).Вот как прописать стиль. В  файл style.css (Внешний вид — Редактор — Таблица стилей) прописываем стиль с графической иконкой к первому пункту меню:

      
      .icon1- menu a {
      
      background: url(http:// ...ucon.png);
      
      background-repeat: no-repeat;
      
      padding-left: 15px;
      
      }
      
      

      Теперь этот прописанный стиль нужно привязать к конкретному пункту меню. Идем в Консоль – Внешний вид – Меню – Открываем свойства нужного пункта меню (в нашем случае первого) и в пункте “Классы CSS (необязательно)” прописываем созданный нами стиль:  icon1- menu

      RE: Добавить иконки к пунктам меню на Wordpress

      P.S. Если у вас нет такого пункта настроек как  “Классы CSS (необязательно)“, на странице с Меню нажимаем Настройки экрана (вверху экрана) — Показывать расширенные свойства меню и устанавливаем галочку «Классы CSS» (после этого появится).

      Вот таким простым способом мы установили графическую иконку к пункту меню на сайте WordPress. Проделайте такую же операцию для нужных вам пунктов меню.

      • 9480 просмотров
      • 3 ответов
      • 3 голосов
    • Для запрета индексации страниц навигации/пагинации в WordPress, можно в functions.php прописать код:

       function my_meta_noindex () {
       if (
       is_paged()
       ) {echo "".'<meta name="robots" content="noindex,nofollow" />'."\n";}
       }
      add_action('wp_head', 'my_meta_noindex', 3);
       

      • 3697 просмотров
      • 2 ответов
      • 4 голосов
    • Гуру Вопрос задан в 30.01.2015 в Перенос/Импорт/Экспорт.

      Сменить домен на сайте WordPress в БД после переноса можно через sql-бекап или sql-запросы. Но что делать, если нет под рукой доступа в phpMyAdmin или просто не хочется туда лазить и наделать там делов, особенно, если не знаешь что такое phpMyAdmin,  sql-запросы и  sql-бекапы 🙂
      Допустим, у нас есть ФТП доступ к сайту. Таким образом, мы можем загрузить в корень сайта небольшой скрипт, который подсоединится к базе данных и сделает необходимые нам замены во всей БД. Доступ к базе данных у нас есть – он находится в файле wp-config.php.

      Теперь создаем текстовый файл с названием replace.php и помещаем в него нижеприведенный код. Обратите внимание, что настройки в этот скрипт необходимо внести следующие (в самых первых строках скрипта):

      1. $search = Искомую строку (пишем старый_домен.сом)
      2. $replace = Заменяемую строку (новый_домен.сом)
      3. $hostname = значение define(‘DB_HOST’, ‘localhost’); из файла  wp-config.php
      4. $database =  значение define(‘DB_NAME’, ‘………’); из файла  wp-config.php
      5. $username =  значение define(‘DB_USER’, ‘………’); из файла  wp-config.php
      6. $password =  значение define(‘DB_PASSWORD’, ‘………’); из файла  wp-config.php
      
      <?php
      
      // Written by Mark Jackson @ MJDIGITAL
      
      // http://www.mjdigital.co.uk/blog
      $search = 'старый.ru'; // Ищем...
      
      $replace = 'новый.ru'; // Меняем на...
      
      $hostname = "localhost"; // Настройки базы данных
      
      $database = "host1234";
      
      $username = "host1234";
      
      $password = "password";
      //дальше ничего не трогаем
      
      $queryType = 'replace';
      
      $showErrors = true;
      
      if($showErrors) {
      
      error_reporting(E_ALL);
      
      ini_set('error_reporting', E_ALL);
      
      ini_set('display_errors',1);
      
      }
      
      $MJCONN = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
      
      mysql_select_db($database,$MJCONN);
      
      $table_sql = 'SHOW TABLES';
      
      $table_q = mysql_query($table_sql,$MJCONN) or die("Cannot Query DB: ".mysql_error());
      
      $tables_r = mysql_fetch_assoc($table_q);
      
      $tables = array();
      
      do{
      
      $tables[] = $tables_r['Tables_in_'.strtolower($database)];
      
      }while($tables_r = mysql_fetch_assoc($table_q));
      
      $use_sql = array();
      
      $rowHeading = ($queryType=='replace') ?
      
      'Replacing \''.$search.'\' with \''.$replace.'\' in \''.$database."'\n\nSTATUS | ROWS AFFECTED | TABLE/FIELD (+ERROR)\n"
      
      : 'Searching for \''.$search.'\' in \''.$database."'\n\nSTATUS | ROWS CONTAINING | TABLE/FIELD (+ERROR)\n";
      
      $output = $rowHeading;
      
      $summary = '';
      
      foreach($tables as $table) {
      
      $field_sql = 'SHOW FIELDS FROM '.$table;
      
      $field_q = mysql_query($field_sql,$MJCONN);
      
      $field_r = mysql_fetch_assoc($field_q);
      
      do {
      
      $field = $field_r['Field'];
      
      $type = $field_r['Type'];
      switch(true) {
      
      case stristr(strtolower($type),'char'): $typeOK = true; break;
      
      case stristr(strtolower($type),'text'): $typeOK = true; break;
      
      case stristr(strtolower($type),'blob'): $typeOK = true; break;
      
      case stristr(strtolower($field_r['Key']),'pri'): $typeOK = false; break;
      
      default: $typeOK = false; break;
      
      }
      
      if($typeOK) {
      
      $handle = $table.'_'.$field;
      
      if($queryType=='replace') {
      
      $sql[$handle]['sql'] = 'UPDATE '.$table.' SET '.$field.' = REPLACE('.$field.',\''.$search.'\',\''.$replace.'\')';
      
      } else {
      
      $sql[$handle]['sql'] = 'SELECT * FROM '.$table.' WHERE '.$field.' REGEXP(\''.$search.'\')';
      
      }
      
      $error = false;
      
      $query = @mysql_query($sql[$handle]['sql'],$MJCONN) or $error = mysql_error();
      
      $row_count = @mysql_affected_rows() or $row_count = 0;
      
      $sql[$handle]['result'] = $query;
      
      $sql[$handle]['affected'] = $row_count;
      
      $sql[$handle]['error'] = $error;
      
      $output .= ($query) ? 'OK ' : '-- ';
      
      $output .= ($row_count>0) ? '<strong>'.$row_count.'</strong> ' : '<span style="color:#CCC">'.$row_count.'</span> ';
      
      $fieldName = '`'.$table.'`.`'.$field.'`';
      
      $output .= $fieldName;
      
      $erTab = str_repeat(' ', (60-strlen($fieldName)) );
      
      $output .= ($error) ? $erTab.'(ERROR: '.$error.')' : '';
      
      $output .= "\n";
      
      }
      
      }while($field_r = mysql_fetch_assoc($field_q));
      
      }
      
      echo '<pre>';
      
      echo $output."\n";
      
      echo '<pre>';
      
      ?>
      
      

      Теперь загружаем файл  replace.php в корень нашего сайта и открываем в браузере http://наш_сайт.ру/replace.php
      В результате работы скрипта мы получим извещения о выполненной работе. И если он не выдаст ошибок, смело удаляем с хостинга файл replace.php

      • 4995 просмотров
      • 3 ответов
      • 2 голосов
    • Гуру Вопрос задан в 30.01.2015 в Поиск.

      Чтобы удалить из результатов поиска на сайте WordPress attachment (страницы вложения), нужно в файле function.php прописать код:

       add_action( 'init', 'exclude_images_from_search_results' );
       function exclude_images_from_search_results() {
       global $wp_post_types;
       $wp_post_types['attachment']->exclude_from_search = true;
       }
       

      Этот ответ принят от irinka. в 30.01.2015 Заработано 15 баллов.

      • 2710 просмотров
      • 1 ответов
      • 2 голосов
    • Гуру Вопрос задан в 29.01.2015 в Комментарии.

      Форма комментирования на WordPress выводится функцией

      
      comment_form();
      
      

      Скорее всего, эту строчку кода вы найдете в файле comments.php вашей текущей темы. И если она у вас там так и прописана – то есть comment_form() то в шаблоне будет выводится стандартная форма комментирования со всеми полями. А вот чтобы вмешаться в эту стандартную функцию стандартной формы комментирования, нам потребуется параметр $args – через него можно изменить поля и саму форму.
      Таким образом, передавая переменные в comment_form(), мы можем сделать свою форму комментирования – изменить вид полей, удалить ненужные поля и т.д. Вот пример, как это делается (в файле comments.php  вместо строчки comment_form() нарисуем свою форму:

      
      <?php
      
      $fields = array(
      
      'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Имя' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
      
      '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
      
      'email' => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
      
      '<input id="email" name="email" type="text" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
      
      );
      
      $args = array(
      
      'fields' => apply_filters( 'comment_form_default_fields', $fields )
      
      ,'comment_field' => '<p class="comment-form-comment"><label for="comment">' . _x( 'Комментарий', 'noun' ) . '</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p>'
      
      ,'must_log_in' => '<p class="must-log-in">' . sprintf( __( '<a href="%s">Войдите</a> чтобы комментировать.' ), wp_login_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>'
      
      ,'logged_in_as' => '<p class="logged-in-as">' . sprintf( __( 'Вы вошли как <a href="%1$s">%2$s</a>. <a href="%3$s" title="Выход">Выйти?</a>' ), admin_url( 'profile.php' ), $user_identity, wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>'
      
      ,'comment_notes_before' => '<p class="comment-notes">' . __( 'Не публикуется.' ) . ( $req ? $required_text : '' ) . '</p>'
      
      ,'comment_notes_after' => '<p class="form-allowed-tags">' . sprintf( __( 'You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: %s' ), ' <code>' . allowed_tags() . '</code>' ) . '</p>'
      
      ,'id_form' => 'commentform'
      
      ,'id_submit' => 'submit'
      
      ,'title_reply' => __( 'Ответить' )
      
      ,'title_reply_to' => __( 'Ответить %s' )
      
      ,'cancel_reply_link' => __( 'Отмена' )
      
      ,'label_submit' => __( 'Отправить' )
      
      );
      
      comment_form( $args );
      
      ?>
      
      
      • 8400 просмотров
      • 3 ответов
      • 2 голосов
    • Гуру Вопрос задан в 29.01.2015 в Рубрики.

      Нижеприведенный код, ограничивает число выводимых материалов на сайте WordPress в рубриках с id 97,98,99 до 5-ти. Этот код нужно поместить в файл functions.php текущей темы:

      
      function custom_posts_per_page($query){
      if(is_category('97,98,99')){
      
      $query->set('posts_per_page',5);
      
      }
      
      }
      
      add_action('pre_get_posts','custom_posts_per_page');
      
      

      Узнать id рубрик можно в админке – Записи – Рубрики – наведите мышку на название рубрики и в ссылке увидите номер – …&tag_ID=97… что и есть id рубрики.

      Этот ответ принят от tolya. в 29.01.2015 Заработано 15 баллов.

      • 2603 просмотров
      • 2 ответов
      • 2 голосов
    • Информация для тех, кто вообще хочет отключить автосохранение текста в редакторе WordPress. Для того, чтобы отключить автосохранение, в файл functions.php вставляем хук.

       function disableAutoSave(){
       wp_deregister_script('autosave');
       }
       add_action( 'wp_print_scripts', 'disableAutoSave' );
       

       Функция выключает автосохранение. Хоть автосохранение и полезная штука, но в некоторых ситуациях она не требуется.

      • 2336 просмотров
      • 2 ответов
      • 1 голосов
    • Гуру Вопрос задан в 16.01.2015 в Ошибки.

        Как вариант,  пересохраните файлы

        
        wp-config.php (в корне)
        
        functions.php (в теме)
        
        

        в UTF-8 без BOM

        • 12073 просмотров
        • 3 ответов
        • 1 голосов
      • Гуру Вопрос задан в 11.01.2015 в Настройки.

        Чтобы WordPress не запрашивал каждый раз пароль при установке плагина, вставьте эти строчки в файл wp-config.php:

        
        define('FS_CHMOD_FILE',0777);
        
        define('FS_CHMOD_DIR',0777);
        
        define('FS_METHOD', 'direct');
        
        

        Этот ответ принят от tolok. в 29.09.2017 Заработано 15 баллов.

        • 4168 просмотров
        • 2 ответов
        • 0 голосов
      • Гуру Вопрос задан в 11.01.2015 в Перенос/Импорт/Экспорт.

        Если урлов слишком много, делаем редирект по моей инструкции. Нам понадобятся:

        1. Плагин Simple 301 Redirects
        2. Дополнение к нему под названием Simple 301 Redirects – Addon – Bulk Uploader
        3. Файл со ссылками для импорта.

        Устанавливаем плагин  Simple-301-redirects (активируем), потом плагин Simple-301-redirects-addon-bulk-uploader. Поясню, почему два плагина. В  Simple-301-redirects вы можете поштучно указывать урлы для редиректа, но если у вас 1000 штук, то вбивать их руками – долго получится. Для этого и устанавливаем  Simple-301-redirects-addon-bulk-uploader – загрузчик файла импорта со ссылками.

        Эти два плагина установили, теперь готовим файл импорта. Открываем текстовый файл и прописываем в него урлы для редиректа в таком формате:

        
        /2004/stariy-url.html,"/noviy-url.html"
        
        /2004/stariy-url2.html,"/noviy-url2.html"
        
        ...
        
        

        Сохраняем наш текстовый файл и переименовываем его как 301.csv

        Теперь заходим в адмнистративной части WordPress в раздел – Настройки – 301 Bulk Redirects. Попадаем на форму загрузки файла, выбираем наш файл для загрузки  301.csv. Загружаем. В случае успешной загрузки файла, получим число ссылок, для которых активирован редирект.
        Собственно и все.

        Держите плагин  Simple-301-redirects всегда включенным! Редирект будет работать для всех указанных в файле  301.csv страниц. При этом их может быть сколько угодно и скрипт редиректа не будет тормозить работу сайта, так как все настройки редиректа сохраняются в БД WP

         

        • 3490 просмотров
        • 2 ответов
        • 2 голосов
      • Гуру Вопрос задан в 11.01.2015 в Безопасность.

        Как вариант, открыть исходный код страницы сайта на WordPress и искать строчку похожую на:

         <meta name="generator" content="WordPress 3.4.2" />
         

        3.4.2 – и будет текущей версией  WordPress

        Второй вариант для администратора – открыть файл /wp-includes/version.php. В переменной 

         $wp_version = '3.9.2'; 
        

        и будет указана версия  WordPress

        • 15637 просмотров
        • 5 ответов
        • 2 голосов
      • Гуру Вопрос задан в 11.01.2015 в Безопасность.

        Чтобы восстановить забытый пароль в Вордпресс, не обязательно помнить адрес электронной почты. Достаточно помнить логин пользователя, его то вы не забыли? Вордпресс отошлет все инструкции по смене пароля на адрес электронной почты пользователя (естественно, если у вас есть к ней доступ).

        Перейдите по ссылке /wp-login.php, затем «Забыли пароль». Тут просят указать либо адрес электронной почты пользователя, либо имя пользователя (“Please enter your username or email address. You will receive a link to create a new password via email“).

        Разумеется, если к почте утерян доступ, то вам нужно воспользоваться другими рекомендациями по смене пароля в Вордпресс.

        • 3054 просмотров
        • 5 ответов
        • 0 голосов
      • Гуру Вопрос задан в 10.01.2015 в RSS.

        Да, стандартный виджет RSS из коробки WordPress не закрывает внешние ссылки на ресурс RSS и не содержит настроек их закрытия. Все ссылки будут индексироваться при размещении такого виджета на сайте.

        RE: Индексируются ссылки из виджета RSS на WordPress ?

        Проблема со стандартным виджетом RSS в этом плане решается просто, нужно отредактировать сам виджет, добавить noindex и noffolow в ссылки виджета. Функция виджета RSS описана в файле /wp-includes/default-widgets.php (где есть все стандартные виджеты WordPress).

        • 3006 просмотров
        • 2 ответов
        • 1 голосов