+2.26
3 читателя, 22 топика

Как установить wordpress на хостинг c isp manager ?

Буду рассматривать пример, на Скай-Хостинге.
У них web-скрипты активно используются. У многих они выключены или не настроены ;)

Регистрируемся на хостинге.



Проходим проверку, что мы живой человек, а не масс регер для спама какой-ниб.

Выбираем локацию шаред-хостинга.



Видим, как заказ активировался.


Ну а теперь заходим в ISP manager, в свой аккаунт на сервере. Находим там вкладку web-скрипты. Ищем искомый скрипт.

Устанавливаем. Настраиваем конфиг. База данных сама создастся.




В принципе, такая схема применима для любых движков и хостингов где есть ISP manager. Нужно лишь, чтобы хостер включил поддержку веб-скриптов, большинство почему-то не_делает.

Как установить wordpress на хостинг ihc ?

Понаблюдав с пол года, за меткой «хостинг» на всяких сервисах вопросов и ответов, я понял, что просто туева хуча народу не разу в жизни не покупала хостинг. НО обязательно хочет сделать блог или любой другой популярный массовых движок.

Поэтому я напишу мануал, на примере дешевого и надежного хостинга ihc. (50р/мес)

Вы не понимаете сути хостинга, не понимаете сути домена, не знаете что такое dns и прочее. Но вы хотите создать свой первый блог или сайт?
ОК. Я пытался объяснять людям в подробностях на сервисах q/a, но пришел к выводу, что для первого раза это бесполезно, пусть люди сами проверят, протестируют и чему-то научатся.
Поэтому тем, кто шарит, многие моменты покажутся спорными. Да, для себя, я бы делал по другому. НО этот пост написан для человека, критерии которого я описал выше.

Итак, проще всего вам будет воспользоваться акцией, бесплатный домен при оплате за год. Как раз, минимальный срок регистрации домена — 1 год. И хостинг вы купите ровно на год, да еще и дешевле из-за скидки. Самое оно — чтобы понять — нужен ли вам сайт или нет. Будете ли вы дальше, в будущем, изучать сайто-строение, хостинги, домены, различные движки и прочее или же это вам не понравится, не интересно и вы просто забьете.
Да, по статистике добрая половина людей — забивает :) Поэтому, как раз чтобы не терять много денег, самое дешевый/простой/надежный вариант, этот тот, который я щас описываю.

1. Регистрируется на хостинге, выбираем самый дешевый тариф, сроком на 1 год.

2. Далее регистрируем домен. Это в панели управления.


При заказе мы выбирали «блог». По идее wordpress уже должен быть установлен.
НО если же, в будущем что-ниб случится и он не будет установлен автоматически.

Тогда, нам нужен будет FTP клиент, например filezilla Качаем программу.
После оплаты хостинга, нам на email пришли данные всякие.
Вот по ним и логинимся.
Еще, скачиваем последнюю версию блогового движка wordpress
Скачиваем архив, распаковываем. Эти файлы и будем заливать по ftp.
Но сначала настроим файл config.php (если config.php.new называется, уберите приписку .new)
Туда нужно вписать вот эти данные. (эти данные вы создаете в панели, на хостинге ihc, вкладка Базы Данных, первая БД должна прийти на почту после оформления заказа по идее)
define('DB_NAME', 'pXXXXX_blabla');
/** Имя пользователя MySQL */
define('DB_USER', 'pXXXXX_blabla');
/** Пароль к базе данных MySQL */
define('DB_PASSWORD', 'ATBzbIFR');
/** Имя сервера MySQL */
define('DB_HOST', 'pXXXXX.mysql.ihc.ru');


Кстати проверяем в панели, на хостинге. Создан и добавлен ли у нас домен?
Для этого заходим внутрь заказа и там видны все настройки. Добавление доменов. Создание FTP. Создание баз данных.
Вам на почту все эти данные уже должны были прийти. Но если что вот.


Подключаемся, через filezilla, по FTP данным, что у вас есть.
И закачиваем файлы движка, в папку /www/ваш_домен/
Закачиваем именно в таком виде.
т.е. путь должен быть вида /www/ваш_домен/wp-admin/ например, никаких лишних папок.


Если все сделано правильно — заходим на ваш домен — будет меню установки, там все понятно, создаем админа и изучаем движок.

зы Если все совсем туго и не получилось. можете написать мне на alice2k@abcd.bz, я создам и активирую вам там тестовый аккаунт, настрою все. вам останется только оплатить.

Полезные запросы, чтобы очистить БД в wp

Очищает всякие левые символы. Когда кодирует БД туда сюда.
UPDATE wp_posts SET post_content = REPLACE(post_content, '“', '“');
UPDATE wp_posts SET post_content = REPLACE(post_content, '”', '”');
UPDATE wp_posts SET post_content = REPLACE(post_content, '’', '’');
UPDATE wp_posts SET post_content = REPLACE(post_content, '‘', '‘');
UPDATE wp_posts SET post_content = REPLACE(post_content, '—', '–');
UPDATE wp_posts SET post_content = REPLACE(post_content, '–', '—');
UPDATE wp_posts SET post_content = REPLACE(post_content, '•', '-');
UPDATE wp_posts SET post_content = REPLACE(post_content, '…', '…');

UPDATE wp_comments SET comment_content = REPLACE(comment_content, '“', '“');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '”', '”');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '’', '’');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '‘', '‘');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '—', '–');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '–', '—');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '•', '-');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '…', '…');


Запрос, чтобы закрыть все «обратные ссылки» на свои посты. Ну функция пингбеки знаете такая есть. Не будешь же каждую запись вручную ;)
UPDATE wp_posts SET ping_status = 'closed';


Очищает все неиспользуемые шорткоды.
UPDATE wp_post SET post_content = replace(post_content, '[tweet]', '' ) ;


Удаляет некорректные метки
DELETE FROM wp_postmeta WHERE meta_key = 'YourMetaKey';


Удаляет все неиспользуемые и давно забытые метки, которые не принадлежат постам, но остались в базе.
DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0 );
DELETE FROM wp_term_taxonomy WHERE term_id not IN (SELECT term_id FROM wp_terms);
DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);


Очистка кеша фидов.
DELETE FROM `wp_options` WHERE `option_name` LIKE ('_transient%_feed_%')


Удаляет все копии сообщений и историю изменений.!!! Вот это очень хорошо очищает. Ибо после каждого редактирования сохраняется копия правок.
DELETE a,b,c FROM wp_posts a WHERE a.post_type = 'revision' LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id);


Пакетное удаление старых сообщений
В данном примере устанавливается для удаления любой пост, который старше 600 дней.
DELETE FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > 600


Изменить автора у всех сообщений сразу.
SELECT ID, display_name FROM wp_users;

UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;

Как найти BOM?

Очень часто при работе с различными CMS много неприятностей доставляет наличие BOM в сохраненных в utf-8 файлах.
Ошибка проявляется в виде сообщения:
Warning: Cannot modify header information - headers already sent by (output started at /xxxxxxxx/wp-config.php:1)

Может быть не wp-config.php, а другой файл. А может сообщения вообще не быть, если вывод предупреждений подавлен. Когда ошибка на виду, найти файл не составит проблемы. А если нет сообщения?

Для облегчения поиска файлов с BOM поможет скрипт.
1. скрипт разархивировать и залить на сервер в корневую директорию
2. в адресной строке броузера набрать ваш.сайт/find_bom.php

C чего начать оптимизацию блога?

C чего начать оптимизацию блога?
Сократите количество запросов к базе данных.

Имя блога
<title><?php bloginfo( 'name' ); ?></title>

Эта функция берет из базы данных название блога, которое вы ввели в настройках. Вы можете безболезненно избавиться от нее, заменив на название блога.
<title>Блог о Wordpress</title>


Ссылка на сайт
<?php bloginfo( 'url' ); ?>

Эта функция возвращает прямую ссылку на главную страницу сайта. Ее можно заменить на саму ссылку:
http://web.abcd.bz/

или даже на ее относительный вид, который автоматически трансформируется в текущий домен:
/


Папка, в которой находится style.css
Наверняка вы встречали подобную функцию:
<img src="<?php bloginfo( ‘stylesheet_directory’ ); ?>/images/myimage.jpg"/>

Она возвращает из базы данных абсолютный путь к папке, в которой находится файл стилей style.css. Эту функцию, как и в предыдущем случае, можно заменить на абсолютный, а лучше — на относительный путь к этой папке:
<img src="/wp-content/themes/mytheme/images/myimage.jpg"/>


Папка используемой темы
<?php bloginfo( 'template_directory' ); ?>/include/metabox.php ?>

Если вы не собираетесь менять тему и настройки, с ней связанные, то можете вместо функции, извлекающей из базы данных абсолютный путь к папке с текущей темой использовать относительный путь к этой папке:
/wp-content/themes/mytheme/include/metabox.php ?>


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

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

HTML карта сайта на WordPress

Существует достаточно много плагинов, которые строят карту сайта HTML. Но, может быть, вы хотите добавить какие-то специфические особенности для карты вашего сайта. Например, включить или исключить определенные типы заметок и страниц, показать таксономию, и так далее. Поэтому будет полезно создать шаблон карты сайта в своей теме и использовать его.

В действительности, очень полезно использовать карту сайта HTML как часть темы. В таком случае карту сайта можно использовать и на странице WordPress для ошибки 404. Чтобы сделать карту сайта HTML частью темы надо создать папку partials в папке вашей темы. В папке partials создаем создаем файл с именем sitemap.php.

Копируем в него следующий код и правим его в соответствии со структурой своего сайта:
<h2 id="authors">Authors</h2>
<ul>
<?php 
wp_list_authors( 
  array(
    'exclude_admin' => false,
  )
); 
?>
</ul>
 
<h2 id="pages">Страницы</h2>
<ul>
<?php
// Страницы, которые надо исключить из карты сайта добавляем к exclude здесь
wp_list_pages( 
  array(
    'exclude' => '',
    'title_li' => '',
  )
);
?>
</ul>
 
<h2 id="posts">Заметки</h2>
<ul>
<?php
// Категории, которые надо исключить, добавляем к exclude здесь
$cats = get_categories('exclude=');
foreach ($cats as $cat) {
  echo "<li><h3>".$cat->cat_name."</h3>";
  echo "<ul>";
  query_posts('posts_per_page=-1&cat='.$cat->cat_ID);
  while(have_posts()) {
    the_post();
    $category = get_the_category();
    // Ссылку на заметку выводим только один раз, даже если она указана в нескольких категориях
    if ($category[0]->cat_ID == $cat->cat_ID) {
      echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
    }
  }
  echo "</ul>";
  echo "</li>";
}
?>
</ul>

Теперь там, где нужно вывести HTML карту сайта в теме WordPress вставляем следующий код:
<?php get_template_part('/partials/sitemap'); ?>



Чтобы сделать шаблон для карты сайта нужно скопировать файл page.php и переименовать копию в page-sitemap.php. Затем открываем его и ниже вызова функции the_content(); добавляем упомянутый ранее вызов get_template_part(). Теперь переходим в начало файла и после открывающего тега <?php (но перед вызовом get_header()), добавляем комментарий:
/*
Template Name: Карта сайта HTML
*/

Конвертация Movable Type 2 wordpress

Заходим в наш MT, в админку.
Копируем все что нада.
В вордпресе импортируем.
Но, не все просто ;)

Первое. Это проблема с конвертором. Весь текст в одну строку получается. Чтобы от этого избавиться вот:
Открываем установленный плагин. (не важно, даже самый обновленный официальный косячил)
wp-content/plugins/movabletype-importer/movabletype-importer.php
Ищем:
\n

Заменяем на:
\n \n


Еще. Символы не меняются. Были "-", стали "_". В названиях записей.
Это исправляется вот так:
SQL #
UPDATE `wp_posts` SET `post_name` = REPLACE(`post_name`, '-', '_');

thx keXek за это.

Еще возможно, понадобится людям почитать про markdown, кто его юзал.
оригинальный синтаксис daringfireball.net/projects/markdown/syntax
вот перевод если трудно вникать markdown.pp.ru/

Полезности по редиректам.
.htaccess
redirect.php in your WP root directory
<?php
require('wp-config.php');
header('Content-type: text/plain');
?>
<MTEntries lastn="999999">
Redirect Permanent /archives/<$MTEntryID$>.html http://www.example.org/archives/<$MTArchiveDate format="%Y/%m/%d"$>/
   <?php echo sanitize_title("<$MTEntryTitle$>"); ?>
</MTEntries>


If your entry IDs in MovableType are padded with zeroes (0), then change the line above to
Redirect Permanent /archives/<$MTEntryID pad="1"$>.html http://www.example.org/archives/<$MTArchiveDate format="%Y/%m/%d"$>/
   <?php echo sanitize_title("<$MTEntryTitle$>"); ?>


Also, if your used the «dirify» option, for example, when in MT, if you had:
  • Archive Type: Individual,
  • Archive File Template: .php,
    quotes in title etc,
  • Use:
    Redirect Permanent /archives/<MTEntryTitle dirify="1">.php 
     http://www.example.com/index.php?s=<$MTEntryTitle encode_url="1"$>
    or if the extension for the pages were ".html", instead of the ".php" above, use:
    Redirect Permanent /archives/<$MTEntryID$>.html 
     http://www.example.com/index.php?s=<$MTEntryTitle encode_url="1"$>
    .htaccess and mod_rewrite
    RewriteEngine on
    RewriteRule archives/0*(\d+).html /uri/to/blog/index.php?p=$1
    RewriteRule index.rdf /uri/to/blog/index.php?feed=rdf
    RewriteRule index.rss /uri/to/blog/index.php?feed=rss
    RewriteRule index.xml /uri/to/blog/index.php?feed=rss2

Как сделать комбинированную форму комментирования

Точно так же, как у нас тута.
Комменты: livestreet // Vkontakte // Facebook
Переключаться среди них.

Так вот, в wordpress это делается так:
1. Для начала нужно сделать три таба в форме комментирования. В первом табе мы расположим комментирование через OpenID, во втором — стандартные поля для ввода данных, а в третьем — ссылку для входа в блог под своим логином и паролем с переадресацией на ту же страницу.
Сделать простейшие табы поможет этот пост.
2. Для вставки комментирования через OpenID в первом табе используем плагин Comments with OpenId. Содержимое первого таба будет выглядеть примерно так:
<?php comments_with_openid(); ?>
<input type='text' name='openid_identifier' id='openid_identifier' class=textfield' tabindex='4' />

3. Содержимое второго таба будет выглядеть примерно так:
<input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="10" tabindex="1" /> имя
<input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="10" tabindex="2" /> почта
<input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="10" tabindex="3" /> сайт

4. В третий таб нужно вставить ссылку на страницу входа с переадресацией на исходную страницу после удачного логина. Код примерно такой:
<a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php echo urlencode(get_permalink()); ?>">Вход</a>

5. Ну и последний шаг — нужно найти, где вызывается форма комментирования, и вместо нее использовать получившийся у вас код. Обычно форма комментирования находится в файле comments.php, иногда для нее создают отдельный файл, например, comment-form.php.