1250
Баллы
Вопросов
1
Ответы
90
Все зависит от используемой Вами темы! Тут нельзя давать общие рекомендации по правке Вашего кода
- 1443 просмотров
- 3 ответов
- 0 голосов
Закрыть сайт можно и на обслуживание 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 голосов
Создать иконки к меню на сайте WordPress можно и без плагинов, собственными CSS стилями. На это уйдет больше времени (нежели с помощью плагина), но кода получится меньше (без плагина воообще).Вот как прописать стиль. В файл style.css (Внешний вид — Редактор — Таблица стилей) прописываем стиль с графической иконкой к первому пункту меню:
.icon1- menu a { background: url(http:// ...ucon.png); background-repeat: no-repeat; padding-left: 15px; }Теперь этот прописанный стиль нужно привязать к конкретному пункту меню. Идем в Консоль – Внешний вид – Меню – Открываем свойства нужного пункта меню (в нашем случае первого) и в пункте “Классы CSS (необязательно)” прописываем созданный нами стиль: icon1- menu
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 голосов
Сменить домен на сайте WordPress в БД после переноса можно через sql-бекап или sql-запросы. Но что делать, если нет под рукой доступа в phpMyAdmin или просто не хочется туда лазить и наделать там делов, особенно, если не знаешь что такое phpMyAdmin, sql-запросы и sql-бекапы 🙂
Допустим, у нас есть ФТП доступ к сайту. Таким образом, мы можем загрузить в корень сайта небольшой скрипт, который подсоединится к базе данных и сделает необходимые нам замены во всей БД. Доступ к базе данных у нас есть – он находится в файле wp-config.php.Теперь создаем текстовый файл с названием replace.php и помещаем в него нижеприведенный код. Обратите внимание, что настройки в этот скрипт необходимо внести следующие (в самых первых строках скрипта):
- $search = Искомую строку (пишем старый_домен.сом)
- $replace = Заменяемую строку (новый_домен.сом)
- $hostname = значение define(‘DB_HOST’, ‘localhost’); из файла wp-config.php
- $database = значение define(‘DB_NAME’, ‘………’); из файла wp-config.php
- $username = значение define(‘DB_USER’, ‘………’); из файла wp-config.php
- $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 голосов
Чтобы удалить из результатов поиска на сайте 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 голосов
Форма комментирования на 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 голосов
Нижеприведенный код, ограничивает число выводимых материалов на сайте 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 голосов
Как вариант, пересохраните файлы
wp-config.php (в корне) functions.php (в теме)
в UTF-8 без BOM
- 12073 просмотров
- 3 ответов
- 1 голосов
Чтобы 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 голосов
Если урлов слишком много, делаем редирект по моей инструкции. Нам понадобятся:
- Плагин Simple 301 Redirects
- Дополнение к нему под названием Simple 301 Redirects – Addon – Bulk Uploader
- Файл со ссылками для импорта.
Устанавливаем плагин 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 голосов
Как вариант, открыть исходный код страницы сайта на 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 голосов
Чтобы восстановить забытый пароль в Вордпресс, не обязательно помнить адрес электронной почты. Достаточно помнить логин пользователя, его то вы не забыли? Вордпресс отошлет все инструкции по смене пароля на адрес электронной почты пользователя (естественно, если у вас есть к ней доступ).
Перейдите по ссылке /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 голосов
Да, стандартный виджет RSS из коробки WordPress не закрывает внешние ссылки на ресурс RSS и не содержит настроек их закрытия. Все ссылки будут индексироваться при размещении такого виджета на сайте.
Проблема со стандартным виджетом RSS в этом плане решается просто, нужно отредактировать сам виджет, добавить noindex и noffolow в ссылки виджета. Функция виджета RSS описана в файле /wp-includes/default-widgets.php (где есть все стандартные виджеты WordPress).
- 3006 просмотров
- 2 ответов
- 1 голосов

