Продовжуємо серію постів, присвячених зворотному зв'язку в системі управління WordPress. Сьогодні я спробую розповісти вам, як робиться без плагіна на базі штатної функції wp_mail за допомогою технології програмування ajax.

Переваги зворотного зв'язку Wordpress без плагіна

  • на сайті не підвантажується зайвий яваскрипт і CSS код – стає легшим;
  • форма зворотний зв'язок WordPress без плагіна менш схильна до спаму, за умови що ваш код унікальний;
  • можна налаштувати висновок на свій смак, зробити форму будь-якої складності.

Для того, щоб створити форму зворотний зв'язок WordPress, без використання плагінів нам знадобиться мінімум знань пхп, просто скопіюйте код у потрібне місце.

Код для створення зворотний зв'язок WordPress без плагіна

Почнемо!

Відкриваємо файл functions.php вашої теми та закидаємо туди ось такий код:

function myform_action_callback() ( global $wpdb; global $mail; $nonce=$_POST["nonce"]; $rtr=""; if (!wp_verify_nonce($nonce, "myform_action-nonce"))wp_die("(" error":"Error. Spam")"); $message=""; $to="vash_mail@сайт"; // замінити на свою пошту $headers = "Content-type: text/html; charset=utf-8 \r\n"; $headers.= "From: [email protected]\r\n"; // замінити на іншу скриньку $subject="Повідомлення з сайту ".$_SERVER["SERVER_NAME"]; do_action("plugins_loaded"); // не обов'язково включати в нових ВП, можливо потрібно відключити if ( !empty($_POST["name"]) && !empty($_POST["mess"]) && !empty($_POST["email"]))( $message.="Ім'я: ".$_POST[" name"]; $message.="
E-mail: ".$_POST["email"]; $message.="
Повідомлення:
".nl2br($_POST["mess"]); if(wp_mail($to, $subject, $message, $headers))( $rtr="("work":"Повідомлення надіслано!","error": "")"; )else( $rtr="("error":"Помилка сервера.")"; ) )else( $rtr="("error":"Всі поля обов'язкові до заповнення!")"; ) echo $rtr; exit; ) add_action("wp_ajax_nopriv_myform_send_action", "myform_action_callback"); templ",get_bloginfo("stylesheet_directory")."/css /styleform.css","0.1.2",true); wp_enqueue_script("myform_script_temp",get_bloginfo("stylesheet_directory")." true); "wp_enqueue_scripts", "myform_stylesheet"); function formZak() ( $rty="

"; $rty.="
"; $rty.="
"; $rty.="
"; $rty.="
"; $rty.="
"; return $rty; ) add_shortcode("formZak", "formZak");

У першій функції "myform_action_callback" необхідно $to="vash_mail@сайт"; - Замінити на свою пошту. Також, можливо, у вас виникнуть проблеми з рядком do_action("plugins_loaded"); - на нових версіях ВП можна обійтись без неї. Більше нічого міняти не потрібно, приклад робочий та зворотний зв'язок wordpress без плагіна тестували на версії WP 4.2 та 4.9.1.

Дотримуючись цього коду, вам потрібно створити в темі 2 папки: "css" і "js". Якщо ці директорії вже присутні у вашій темі, то створювати не потрібно. Закидаємо в директорію "css" файл стилів "styleform.css" - і за бажання записуємо туди стилі форми. Я цього робити не буду, оскільки для прикладу стилі не потрібні.

У директорію "js" закидаємо файл "scriptform.js" і туди записуємо такий простий код:

function myform_ajax_send(name,email,mess)(
jQuery.ajax((
type: "POST",
url: myform_Ajax.ajaxurl,
dataType:"json",
data:(
"name":jQuery(name).val(),
"email":jQuery(email).val(),
"mess":jQuery(mess).val(),
"nonce": myform_Ajax.nonce,
"action":"myform_send_action"
},
success: function (data) (
if(data.error=="")(
alert(data.work);
)else(
alert(data.error);
}
},
error: function () (
alert("Помилка з'єднання");
}
});
}

Не забуваймо закачати ці файли до себе на сервер.

Все готово! - щоб вивести форму достатньо вставити шорткод в пост або сторінку свого сайту.

Якщо потрібно викликати форму з пхп, наприклад, у низу сторінки скористайтеся викликом шорткодів:

Ви можете скопіювати цей код до себе на сайт і спробувати тестувати, все має працювати, я спеціально перевіряв цей приклад у себе. Ось така відповідь має прийти на пошту:

Як ви зрозуміли, так просто робиться без плагіна. Далі я спробую трохи розповісти що означає цей код, якщо це вам цікаво.

Опис зворотного зв'язку для Wordpress без плагіна

myform_action_callback() - функція для надсилання повідомлення з форми зворотного зв'язку на пошту.

add_action("wp_ajax_nopriv_myform_send_action", "myform_action_callback");
add_action("wp_ajax_myform_send_action", "myform_action_callback");

підключають нашу функцію відправки до запиту аякс. Важливий момент у тому, що від сюди "myform_send_action" має збігатися з ось цим рядком у вашому яваскрипт файлі: "action":"myform_send_action"

myform_stylesheet() - функція для підключення файлу стилів, яваскрипта і створення змінної яваскрипт myform_Ajax, яка включає в себе myform_Ajax.ajaxurl - посилання на обробник аякс запиту і myform_Ajax.nonce - унікальна перевірка на те, що відправка форми йшла саме з вашого сайту (ну та злому сайту).

formZak() - Функція, де формується код форми. Тут ми можемо додавати чи прибирати потрібні поля.

Останній рядок функцій: add_shortcode("formZak", "formZak"); реєструє шорткод, щоб нам було зручно працювати з нашою формою зворотного зв'язку для Wordpress без плагіна.

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

Начебто все описав про те, як створити форму зворотного зв'язку без плагінів. Якщо у вас залишилися питання за кодом, або у вас не вдалося запустити цю форму у себе на сервері можете описати проблему в коментарях. Радий допомогти вирішити вашу проблему. До нових зустрічей.

Завантажити цей приклад на жаль не вийде, тому що не можу давати у вашу тему свій файл functions.php, він банально не підійде:(.

При виявленні проблем у роботі цього коду прохання повідомити нам про це будемо вдячні. Трабл можливий через оновлення ВП і відключення будь-якої з функцій, що використовуються, або ж при переході на нову бібліотеку jquery.

Здрастуйте, шановні читачі блогу сайт! Сьогодні хочу запропонувати рішення чергового завдання щодо оптимізації WordPress. Нагадаю, що з метою налаштування та прискорення індексації сайту необхідно для пошукових роботів.

Але не менш важливий і HTML аналог, що допомагає відвідувачам орієнтуватися та швидко знаходити потрібні матеріали на сторінках вашого веб-проекту. Приклад створення вже було розглянуто. В принципі, це досить непоганий варіант і цілком підходить не тільки для початківців, але і для зрілих вебмайстрів.

Однак, оскільки WP за всіх його переваг досить важкий двигун, і багато його модулів створюють додаткове навантаження на сервер хостингу або на певному етапі з тієї чи іншої причини перестають підтримуватися розробниками, іноді корисно мати запасний варіант. Тому сьогодні спробуємо створити картку у форматі HTML без допомоги плагінів. Це найскладніший шлях, проте, якщо ви хочете розвиватися, не зайвим буде його пройти.

Користуючись нагодою, хочу надати вам кілька матеріалів, в яких запропоновані методи оптимізації WP блогу або сайту в різних сферах без використання розширень:

Тим, хто поки що слабо уявляє собі нюанси механізму створення та редагування шаблонів, рекомендую попередньо познайомитися з . Запевняю вас, після цього зникнуть багато питань.

Простий варіант sitemap у форматі HTML

Ну, а тепер переходимо безпосередньо до питання про те, як зробити картку сайту на WP без плагінів, тобто за допомогою PHP-коду, який використовується в основних шаблонах більшої частини движків. Спочатку створимо просту карту, щоб ви зрозуміли суть процесу.

Будь-які зміни у файлах сайту краще проводити за допомогою спеціалізованого софту. Я раджу застосовувати для цього зв'язку (для з'єднання з сервером вашого хостингу) + (для безпосереднього редагування).

Можливо, звичайно, використовувати тільки Нотепад з двома плюсами, якщо у вас в ньому встановлено просто комплексний варіант, на мій погляд, набагато безпечніше (втім, вибір за вами).

Після того, як ви тим чи іншим способом отримаєте доступ до віддаленого сервера, де живе веб-сайт, за допомогою блокнота-редактора Notepad++ відкрийте файл page.php вашої теми (цей шаблон зазвичай відповідає за виведення стандартної статичної сторінки блогу Вордпрес). Якщо на вашому хостингу єдиний сайт, то цей файл, швидше за все, можна знайти слідуючи шляхом:

"public_html" - "ім'я домену" - "wp-content" - "themes" - "назва теми" - "page.php"

На його основі ми й робитимемо нашу карту сайту WordPress. Перш за все, вам потрібно створити новий файлик в кореневій папці теми, скориставшись тим же Нотепадом, і придумати для нього відповідну назву, яка б надалі підказала вам мету його створення, якщо ви раптом її забудете. Назвати новий об'єкт можна, скажімо, map.php.

Отже, після описаних дій обидва файли будуть на сусідніх вкладках Notepad++. У темі мого блогу зміст page.phpвиглядає так (на жаль, неможливо надати універсальний варіант на всі випадки життя, оскільки теми у всіх різні):

>

Далі потрібно скопіювати зміст page.php та вставити його в map.php, після чого змінити останній відповідним чином. Як це зробити, ми зараз і розберемо на прикладі створення sitemap за вище представленим зразком. Майте на увазі, що зміст вашого файлика page.php може відрізнятися з варіантом, який я запропонував.

Тому важливо зрозуміти принцип редагування. У шаблонах вашої теми можуть бути відповідальні за оформлення контенту, відмінні від тих, які ви спостерігаєте у складі вище розташованого коду. Їхні стильові властивості можуть впливати на зовнішній вигляд sitemap, а тому, швидше за все, доведеться зробити налагодження дизайну з .

Якщо ви хоч трохи орієнтуєтеся в цій темі, вам нескладно буде зрозуміти міркування та інструкції, які підуть нижче. Якщо ж склад і зміст шаблонів WordPress для вас темний ліс, то і в цьому випадку нічого страшного я не бачу, тому що наприкінці представлю готовий сайт-мап, який повинен підійти практично всім.

Розглядаємо далі наш приклад. Залишаємо ті рядки, які визначають основну HTML-розмітку сторінки і будемо міняти тільки вміст, що знаходиться між тегом, що відкриває і закриває article (16 - 19 рядки). Насамперед зверніть увагу на початок (16) і кінець (19) циклу, які визначають вид контенту, що виводиться.

Ми їх видаляти не будемо, оскільки для відображення посилань на матеріали, необхідні нам, також працює циклічна функція. В даному випадку всередині циклу знаходяться два рядки (17 та 18):

Функцію виведення коментарів видаляємо відразу, адже це зайвий контент для карти. А щодо рядка 17 («get_template_part») необхідно зробити пояснення, щоб усе було зрозуміло. Справа в тому, що в багатьох сучасних темах WordPress різні веб-сторінки, у тому числі статичні, можуть формуватись за допомогою декількох шаблонів.

Цей випадок не є винятком. Рядок 17 якраз і містить код виклику додаткового шаблону content-page.php, що відповідає за відображення деяких складових сторінки, до яких входить і функція виведення заголовка, який ви прописуєте в редакторі адмінки. Зазвичай вона поміщена у відповідний тег:

Але така конструкція призначена для автоматичного формування назви будь-якої сторінки, яку ви створюєте на своєму блозі. У нашому випадку ми намагаємося створити особливий шаблон, де заголовок буде незмінним. Тому можна просто прописати його у форматі HTML над рядком початку циклу (одночасно видаливши «get_template_part»):

Отже, ми видалили вміст циклу, що виводить контент звичайної статичної вебсторінки, але його треба чимось замінити, інакше HTML-карта буде порожня. Так як зміст sitemap відрізняється наявністю безлічі посилань, які ведуть на пости блогу, то замість рядків 17 і 18 вставляємо код, який виводитиме ці самі лінки на статті:

">

Але це ще не все. Щоб забезпечити можливість відображення матеріалів у вигляді вертикального списку, задати та красиво оформити всю цю справу через присвоєння властивостей класам та ідентифікаторам, укласти весь простір виведення посилань у контейнер, що визначається :

>

Карта сайту

  • ">

Стиль оформлення виведення посилань буде застосований за тими властивостями, які прописані для селекторів ul та li вашої поточної теми у файлі style.css. Якщо з якихось причин вас не влаштує такий вигляд, то існує можливість укласти весь контент і визначити для нього якийсь клас, наприклад class="html_sitemap":

>

Карта сайту

  • ">

Тепер роботу майже закінчено. Але якщо ви читали статтю про , то знаєте, що для того, щоб зв'язати створений шаблон зі сторінкою, спочатку необхідно визначити його назву. Для цього певним чином змінимо зміст шапки:

Ось тепер у нас готовий простенький шаблон картки сайту для відвідувачів:

>

Карта сайту

  • ">

В принципі такий шаблон можна використовувати для будь-якої теми. Однак, заключним кроком потрібно ще в адмінці WordPress зайти в розділ "Сторінки" - "Додати нову". Там у полі для заголовка назву сторінки не прописуємо, оскільки для нашого зразка вона буде вказана безпосередньо у створеному шаблоні, а налаштувати постійне посилання необхідно.

Далі з меню «Шаблон» вибираємо потрібний варіант (у нашому прикладі «Карта»). Тепер файл map.phpпов'язаний зі сторінкою і WordPress знатиме, до якого шаблону слід звертатися для її відображення у браузері:

Ось тепер усі. Про всяк випадок даю набір властивостей CSS для sitemap, можливо, вони і підійдуть:

Html_sitemap H1 (font-size:20px; margin-bottom:25px) .html_sitemap ul (list-style-type: circle; line-height: 1.5) color: #984802; font-weight: bold; text-decoration: none)

Якщо ж побажаєте їх трохи змінити, то ви досхочу можете поекспериментувати використовуючи інструмент розробника, що є в будь-якому сучасному браузері і викликається натисканням клавіші F12, прообразом якого є , що дозволяє проводити все редагування без реальних змін у файлах. Після того, як досягнете потрібного результату онлайн, внесіть отримані стилі у файл style.css і справа в капелюсі.

Як створити повну HTML карту сайту для Вордпрес

У попередній частині ми з вами розглянули, як зробити простеньку картку для WP, яка містить виключно посилання на статті сайту чи блогу. Але на практиці такий вид застосовується рідко, хіба що на крихітних ресурсах. Я навів цей приклад виключно для демонстрації алгоритму дій у таких ситуаціях. Тобто як не володіючи мовою PHP досконало, навчитися редагувати файли теми, не завантажуючи вас масивними кодами.

Я колись перебував у подібній ситуації та дивився на php-файли як баран на нові ворота. Але поступово навчився розрізняти ті чи інші функції, що відповідають за певні сфери застосування. У цьому дуже допоміг і досі допомагає Codex WordPress. Я навіть схиляюся до думки виділити окрему рубрику на блозі для вивчення основ PHP, оскільки вебмайстри-початківці часто зустрічаються з серйозними труднощами при редагуванні файлів теми.

Ну гаразд, це справа майбутнього, продовжимо нашу тему. Я зупинився на тому, що така простенька карта не має практичного застосування, зазвичай використовується складніший варіант, де є посилання на статичні сторінки, поділ за категоріями, список архівних матеріалів тощо. Якщо бажаєте отримати повний сайт, то повинні зробити дії, які я опишу нижче.

Для того, щоб досягти можливості більш тонкого налаштування, використовуємо для наших цілей файл function.php(Нагадаю, він знаходиться в кореневій директорії вашої теми), який дозволяє реалізовувати найнетривіальніші завдання. Для цього підключіться до сервера за допомогою тієї ж згаданої мною раніше у цій статті програми Файлзилла:


Для початку відкриємо його в тому ж редакторі Нотепад плюс плюс (з цією метою підведіть курсор до function.php, натиснувши правою кнопкою мишки, викличте контекстне меню і виберіть з нього «Перегляд/Правка»). Далі вставте в нього такий фрагмент:

Function sp_html_sitemap() ( $category = true; // true - відображати блок з постами, false - немає $categoryExclude = ""; // ID категорій через кому, які треба виключити $categoryEmpty = true; // true - не показувати порожні категорії, false - показувати $page = false;// true - відображати блок зі сторінками, false - немає $pageExclude = ""; авторами, false - немає $authorExcludeAdmin = false; // true - виключити користувача з логіном admin, false - немає $result = "

"; if ($page) ( $result .= "

Сторінки

    "; $result .= wp_list_pages(array("exclude" => $pageExclude, "title_li" => "", "echo" => false,)); $result .= "
"; ) if ($category) ( $cats = get_categories(array("orderby" => "name", "hierarchical" => false, "exclude" => $categoryExclude, "hide_empty" => $categoryEmpty,))) ; $result .= ""; foreach ($cats as $category) ( $result .= "
  • cat_ID)."">".$category->name.""; $result .= "
      query_posts(array("cat" => $category->cat_ID,"showposts"=>1000)), while (have_posts()) ( the_post(); $cat = get_the_category(); if ($cat-> cat_ID == $category->cat_ID) ( $result .= "
    • "; $result .= "".get_the_title().""; $result .= ($categoryDate)?" (".get_the_time("d.m.Y").")":""; $result .= "
    • "; )) $result .= "
  • "; ) $result .= ""; ) $result .= "
    "; wp_reset_query(); echo $result; )

    Перевага HTML sitemap, реалізованого за сприяння чудового файлу function.php полягає в тому, що ми отримуємо гнучкий варіант. Гнучкість його полягає в тому, що ви можете в майбутньому налаштувати все за власним бажанням. Найвищі рядки і дозволяють внести потрібні зміни навіть без базових знань мови PHP (коментарі, виділені зеленим, на мою думку, досить інформативні і підкажуть вам, що і як треба вказати в тому чи іншому випадку).

    Наприклад, ви можете виключити окремі категорії та вебсторінки, перерахувавши їх числові ідентифікатори () через кому (якщо виключати нічого не треба, то просто не заповнюєте місце між одинарними лапками):

    $categoryExclude = ""; $pageExclude = "2794, 4366, 12910";

    Скажімо, логічно виключити саму сторінку «Карта», веб-сторінку пошуку на сайті (від Google або Yandex), щоб читачі не милувалися на порожнє місце в подиві. Якщо такі сторінки відсутні, залиште все як є.

    Укладаємо її разом із заголовком у контейнер div із класом для можливості налаштування стилів, у результаті отримуємо наступний код:

    >

    Карта сайту

    Ну і приклад стилів CSS для повної карти ви можете також використовувати:

    Smap h1 (font-size: 20px; margin-bottom: 25px) .html_sitemap ul li (list-style-type: circle; margin-left: 25px; (margin:10px 0 20px 10px) .html_sitemap li a(color:#984802; font-weight:bold)

    Цілком імовірно, я надав не всі функції, які варто було б ще прикрутити до карти. Скажімо, можна вказати кількість статей у кожному архіві, час публікації постів тощо, але це вже зокрема, головне, певен, ви отримали. Наприкінці нагадую про можливість підписки для отримання нових матеріалів блогу на e-mail. Це допоможе вам бути в курсі подій.

    Хочете отримувати своєчасно нові актуальні та корисні статті? Тоді можете передплатити:

    Ще статті на цю тему:

    73 відгуки

    1. Ольга

      Дякуємо за інформацію! А як поставити кнопки сощ.мереж збоку сторінки сайту-як у вас?

    2. Олексій

      Заінтригував... Вивчати почав html та css. Тепер за допомогою вашого поста дістанусь і до карти. Якщо карта можна зробити без плагіна - зроблю. Так що стаття в тему

    3. Саня

      Дуже до речі Ваша статейка. Встановив тему, де передбачено файл карти сайту. Але я, як і Ви, теж намагаюся доритися "до руди". Після неодноразового редагування теми карта сайту стала показувати кількість статей, що дорівнює налаштуванням відображення статей на блозі (в адмінці).
      Довго колупав, потім вирішив зазирнути на "розумні блоги" (Ваш - перший у списку), і, диво, Ваша остання стаття саме про це.
      Величезне ДЯКУЄМО, тепер моя карта сайту набула потрібної форми.

    4. Ігор

      Ольга, я надіслав Вам на e-mail лист із посиланням. Хоча незабаром я почну публікації про кнопки соц.мереж і там теж збираюся описати цей сервіс.

    5. Ігор

      Добре, Олексію. Ставте запитання, якщо щось незрозуміло.

    6. Ігор

      Дякую, Саню, за якісні коментарі, якими Ви нагородили блог Goldbusinessnet. Я дуже радий, що Ви знайшли саме те, що шукали. Щиро кажучи, це додає запалу для продовження обраного напряму.

    7. Василь

      Також збираюся надалі замінити плагін карти сайту кодом. Ігоре, а у вас пошук Гугл це окрема статична сторінка?

    8. Юрій

      Стаття корисна та потрібна! Я якраз позбавляюся зайвих плагінів. Тепер знаю, як позбутися ще одного плагіна.

    9. Ольга

      Так дуже цікаво.
      У мене поки що працює Dagon Design Sitemap Generator. Добре, до речі, працює (не в приклад деяким плагінам). Але поступово заміняю їх кодами у шаблоні.
      Страшновато, звичайно, колупатися в кодах, виходить не з першого разу. Найчастіше блог "злітає". Але треба. Швидкість завантаження блогу- показник пріоритетний.

    10. Ігор

      Василь, я писав дуже докладно про якраз на прикладі створення вебсторінки для пошуку користувача Google.

    11. Ігор

      Звичайно, Ольга, страшнувато, я вас розумію. Але якщо Ви скористаєтеся, наприклад, половина страхів зникне, оскільки в цьому редакторі можна повертатися до початкового варіанту документа. До того ж можна зберігати копії оригіналу, якщо так Вам звичніше.

    12. Ruson

      Здрастуйте Ігоре, я так зрозумів це не sitemap.xml чи є варіант створення карти.xml без плагінів?
      Cgfcb,j

    13. Ігор

      Ні, Ruson, це звичайна картка. Версія XML більш складна, поки її не викладаю, тому що сам поки що користуюся плагіном.

    14. Ruson

      Ок дякую Ігорю.

    15. svargan

      Вітаю вас Ігорю! Давненько не спілкувалися у мене сайдбар вниз злітає може, що з дівами не те. Чи є можливість вирішити це завдання?
      З ув. Дмитро

    16. svargan

      Так вирішив завдання - див просто не там, де потрібно закрив, забув сайдбар у нього включити, воно і зрозуміло, що він униз відлетів після основного блоку. Дякую за інформацію у мене мінус ще один плагін і того з активний залишилося 8) До речі я all seo pack на обному блозі замінив php кодом при додаванні постів довільними полями користуюся в них і ставлю мета теги, тестую час покаже.

    17. Ігор

      Вітаю svargan. Радий знову поспілкуватися. All in One Seo Pack, безумовно, можна замінити кодом, як і всі плагіни. Але просто для SEO він реалізує багато функцій, я дотримуюсь і в цьому питанні правила золотої середини, використовуючи тільки ті плагіни, які не несуть велике навантаження з одного боку, і реалізують безліч опцій з іншого. Хоча чому б не протестувати, нам, вебмайстрам, це доводиться робити постійно.

    18. svargan

      Я також користувався плагіном platunum seo pack, в ньому трохи більше наворотів ніж all seo, ну тут на любителя взагалі. Я ще хочу всі категорії та мітки мета тегами всіма упаковати (заголовки, описи та ключі), теж тест провести цікаво як роздача у посковиках буде на такі цацьки. Ігор завжди радий поспілкуватися до зв'язку.

    19. Ігор

      Platinum у мене теж стояв, проте він давно не оновлювався, тож я й перейшов на All in One.

    20. svargan

      В мене ще питання. Ігор може ви в курсі чи можна змінити плагін Ozh" Better Feed на код?

    21. Ігор

      Щиро кажучи, не чув про таку плагін.

    22. svargan

      Цей корисний плагін дозволяє налаштовувати розсилку. Наприклад, щоб передплатникам на поштову скриньку приходив анонс, а не вся стаття цілком, адже нам потрібен трафік у себе на сайтах і блогах.

    23. Ігор

      А, дякую Дмитре, за таке доповнення, гадаю, для читачів важлива інформація. Якщо цей плагін невеликий і постійно оновлюється, може, і не варто його замінювати кодом принаймні поки що?

    24. Олександр

      Вітаю. Скористався Вашою статтею для створення карти сайту, дякую. Щоправда є одна проблемка. Я пробував застосувати цю карту на своєму блозі на денвері - все вийшло, спробував застосувати на діючому блозі (адреса якого я вказав у відповідному полі) зі стандартною темою вордпресу: все те саме тільки чомусь не відображаються російські символи в заголовках ув'язнених в теги h3. Може ви знаєте у чому причина?

    25. Олександр

      Вже розібрався:) Я вставив Ваш код з 1-5 і з 11-50 рядка (з останнього скріншота) в контейнер, який виводить контент у моїй темі, і все:)

    26. Ігор

      Олександре, значить все ОК і моя допомога не потрібна?

    27. Олександр

      Та все ОК:) Ваша стаття мені допомогла, дякую. Правда, як бачите, в моєму блогу на сторінці "Карта сайту" перед рубриками стоять точки, що позначають список, так мені хотілося б щоб вони тільки перед постами стояли, вчора так і не знайшов як це зробити, якщо підкажіть як - буду вдячний, якщо ні - мені й так зійде:)

    28. Ігор

      Alexander перш за все пропишіть додаткове правило стилів у файл style.css:

      Karta (list-style-type:none;)

        Усі значки списку навпроти категорій та сторінок повинні зникнути. Відпишіться потім, як усе минулося.

      • Олександр

        Все вірно! Спасибі за допомогу:)

      • Anton

        Теж вирішив потихеньку позбавлятися плагінів, вирішив, що першим у списку буде генератор Sitemap. Спробую цей спосіб.

      • Роман Рей

        А якщо ні page.php? Тема Eino

      • Ігор

        Роман якщо немає файлу page.php, то наступним шаблоном, до якого звернеться WordPress, буде index.php. Цей шаблон має бути обов'язковим, робіть на його основі.

      • Роман Рей

        Зрозуміло, дякую. Через Індекс працюватимемо

      • Роман Рей

        До речі, Ви зараз яку карту самі використовуєте? На основі плагіна, або ту, що представлена ​​в описі?

      • Ігор

        Ту, що подана в описі.

      • Віктор

        Вітаю! Зробив картку сайту, як у Вас написано. Все працює, але тільки чомусь у кожної категорії виводиться лише по 5 останніх постів, а мені потрібно щоб у карті сайту виводилися всі пости. Як це мені реалізувати? Заздалегідь дякую.

      • Ігор

        Віктор, взагалі-то, якщо Ви точно дотримувалися моїх інструкцій, такого не повинно бути. Значить, десь у темі function.php стоїть обмеження на виведення кількості постів. Конкретніше сказати, на жаль, не беруся, адже теми у всіх є різні.

      • я
      • Ігор

        Ні, просто робив деякі дії з панеллю Share42, кеш оновлений, зараз все має бути нормально.

      • Ігор

        Вітаю!
        Все працює дякую!
        Підкажіть будь ласка, як зробити як у вас на карті сайту, що б показувало посилання на категорію, а не просто її назву. Сподіваюся Ви зрозуміли, що я маю на увазі.
        Завчасно дякую за відповідь!

      • Ігор Горнов

        Тезка, спробуйте в такий спосіб. Знайдіть у коді повної карти сайту рядок:

        Echo "

      • "."\n"." Рубрика:".$cat->cat_name.""."\n";

        .$cat->cat_name.

        Вставте:

        cat_ID)."">".$cat->cat_name."

        Весь рядок вийде такого вигляду:

        Echo "

      • "."\n"." Рубрика:"cat_ID)."">".$cat->cat_name."""."\n";

      • Ігор
      • Ігор Горнов

        Дивно... Ігоре, а Ви коректно все зробили? А назва рубрики правильно відображається?

      • Ігор

    У мене зараз нове захоплення – оптимізувати блог на движку wordpress «Мережевий Шлях»таким чином, щоб і функціонал зберегти, і при цьому обійтись без плагінів

    Нелюбов до плагінів виникла не на порожньому місці. Якось восени я вирішила, що можливостей мого хостера стає замало і переїхала на інший. А щоб зовсім було добре (як я собі подумала) – на віртуальний виділений сервер

    Бідний мій блог. Скільки вже було проведено експериментів! Інший уже б просто накрився мідним тазом і не гукав. Загалом, переїзд виявився стратегічною помилкою. Грошей виділення коштувало в рази більше, але при кожному напливі народу стабільно показувалося помилка 503– терпець сервера урвався! Сервер не міг завантажити мій блог.

    Помилка 503
    Кожному обліковому запису на сервері виділено певну кількість процесів, що виявляють запити користувачів. Запити надходять на сервер і стають у чергу. Легкі запити обробляються швидко, а важкі проблемні – повільно, гальмуючи просування черги. Коли довжина черги сягає певної величини, сервер перестає приймати нові запити, повертаючи помилку 503 (Service Temporarily Unavailable, сервіс тимчасово недоступний)

    Народ, натикаючись на порожню сторінку, писав і скаржився на відсутність обіцяної інформації

    Я зі свого боку писала хостеру, просила, лаялася.

    Служба підтримки хостингу дуже намагалася щось вирішувати зі свого боку, але все було марно – блог мій у пошуку стрімко падав у нуль. Трафік з пошуку восени і трафіком назвати було не можна. Чи не трафік, а сльози.

    До грудня наші стосунки зі службою підтримки з конструктивно-терпимих уже плавно перетікали на стадію розбірок: хто винен і що робити. І якось, серед цих розбірок, прозвучала думка, що багато у мене плагінів наставлено (на той час їх було 37).

    Зараз я також вважаю, що це багато. Але на звичайному віртуальному хостингу взагалі ніяк не відчувалося! Тому я не стала на той момент доводити наші суперечки хостером до війни і бігом повернула блог назад на timeweb

    Але думка посіяна свої сходи дала. Розібравшись трохи з питаннями внутрішньої оптимізації та прискорення завантаження блогу, я дійшла висновку, що плагіни - далеко не завжди користь!При всій їх зручності.

    Вони створюють додаткові запити до бази даних, додаткове навантаження на сервер і цим гальмують роботу двигуна. Швидкість і без того повільного вордпресу падає і всюдисущий Google починає натякати, що Ваш блог, мовляв, повільніше за інших, а тому поступіться дорогою у видачі спритнішим. І це у кращому випадку! У моєму випадку він мені жорстко і твердо сказав:

    Т.о. відмова від плагінів почалася, як вимушена міра. Нові віяння потребують нових рішень. Треба було шукати альтернативних рішень. WordPress без плагінів!

    Щоб розігнати вордпрес по максимуму, має сенс у ньому покопатися і знайти рішення класу: і вовки ситі, і вівці цілі - зберегти звичний функціонал і обійтися без плагінів. Ну, принаймні, без більшості плагінів.

    Плагін- Це маленька програма допоміжного типу. Вона призначена для розширення функціоналу основної програми (у нашому випадку, WordPress), доповнюючи її та покращуючи у певних моментах. При цьому, основна програма включає механізм виконання плагіна, тобто вордпрес може працювати з допоміжними програмами.

    Плюси плагінів

    1. Плагіни можуть виконувати абсолютно різні функції - починаючи від вирішення простих завдань і закінчуючи складними комплексними рішеннями (форумами, модулями інтернет-комерції і т.п.)
    2. Встановити їх може навіть новачок
    3. Не обов'язково знатися на php і css, щоб посилити функціонал блогу

    Мінуси плагінів

    1. Надмірна кількість запитів до веб-сервера
    2. Запити до бази даних можуть бути дуже важкими, що накладає підвищене навантаження на сервер
    3. ПО часі оновлення плагіни можуть не збігатися з оновленням самого движка і в результаті перестають працювати
    4. Щоб заборонити оновлення, новачки ставлять додаткові плагіни
    5. Не кожен хостинг зможе витримати більше 50 плагінів (у моєму випадку, він уже не адекватно поводився з 37 плагінами)
    6. При переїзді на новий хостинг можуть виникнути проблеми. Починаючи з банальної переналаштування плагінів, закінчуючи конфліктами та несумісністю, а то й непрацездатністю окремих плагінів. Буквально днями мені довелося вирішувати проблему з плагіном FacebookShare для одного партнера – некоректно працювало кодування

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

    На Мережевому Шляху активні 14 плагінів, з них стандартно загальноприйнятих тільки 4. Думаю, що це доти, поки я не розберуся, як їх замінити шматочком коду.

    Ось що тепер на моєму блозі працює чудово і без плагінів:

    1. Антиспам у коментарях
    2. Карта сайту
    3. Популярні записи у сайдбарі з картинками
    4. Схожі записи під постами (з виведенням картинок) – як же на цей плагін весь час лаявся PageSpeed, його java скрипти та css таблиці навіть після оптимізації та стиснення створювали неслабке навантаження
    5. Хлібні крихти
    6. Посторінкова навігація
    7. Топ коментаторів
    8. Кнопки рекомендацій Google+ та

    Деякі вебмайстри хотіли б мати свій сайт на WordPress без жодного плагіна. Тим же, хто користується величезним списком плагінів, має бути незрозуміло, навіщо це треба.

    Насправді обидві групи вебмайстрів мають рацію, і обидві не мають рації одночасно. WordPress без плагіна цілком можливе, але не повністю.

    Розглянемо це питання докладніше.

    Навіщо потрібний WordPress без плагіна

    Кожен плагін на WordPress навантажує сервер. Таким чином, при кожному завантаженні сайту сервер хостингу отримує певне навантаження, і це навантаження зростає зі збільшенням кількості плагінів. Навантаження зростатиме в геометричній прогресії зі збільшенням відвідувачів, адже кожна людина навантажуватиме сервер.

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

    Звідси і виникає думка зробити WordPress без плагінів.

    Чи можливо зробити WordPress без плагінів

    Більшість функцій, які відтворюються на сайті під WordPress, можна реалізувати без плагінів. Однак це не так просто, як здається. Щоб зробити, наприклад, без плагіна, потрібно написати потрібний код у потрібне місце, потрібного файлу. Цей код можна не складати, і легко знайти в інтернеті, але ставити його в потрібне місце вам доведеться самому. І якщо помилитися, то, у кращому разі, функція не працюватиме. У найгіршому – працювати не буде весь сайт. І тоді вам доведеться відновлювати його. Добре, якщо ви пам'ятаєте який файл і яке його місце внесли зміни. А якщо ні, то доведеться робити це з бекапу.

    Говорячи простими словами, щоб зробити свій WordPress без плагіна, потрібні знання та досвід. А вони не у всіх. І потім, WordPress все-таки був створений для того, щоб робити сайт на ньому міг кожен, без особливих знань і досвіду.

    WordPress без плагінів буде не таким функціональним і не так легко буде налаштувати ту чи іншу функцію. Так, якщо ви, наприклад, спробуєте робити слайдер без плагіна, то для додавання та заміни в ньому картинок, вам доведеться редагувати код, і робити це слід з усією увагою та зосередженістю. У той час, коли плагіни для слайдерів дозволяють навіть не думати особливо при редагуванні елемента сайту.

    Чи потрібний WordPress без плагінів

    Після сказано вище відповідь очевидна – ні, не треба робити WordPress без плагіна, принаймні повністю. На одній чаші ваг навантаження на сервер, на іншій – довгий годинник редагування коду. Вибір очевидний. Тим більше, що якщо ви користуєтеся хорошим хостингом, навантаження ви не відчуєте.

    Однак деякі прості функції можна спробувати реалізувати без плагіна на WordPress. Це дозволить здобути безцінний досвід.

    Вітаю! Ось нарешті я і дочекався своєї відпустки, попереду цілий місяць відпочинку. Але це не означає, що припиниться робота на блозі. І сьогодні за планом чергова посада з рубрики Кодекс.

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

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

    Критерієм схожості буде присвоєння рубрики статті, тобто. Наприкінці кожного посту можна вставити схожі записи з тієї ж рубрики. І для цього не потрібно надавати посту мітки (теги) - я їх і не використовую, від індексації вони все одно закриваються, т.к. призводять до дублювання контенту всередині одного, зручність їх використання особисто для мене залишається під питанням, а залишати для краси – не практично.

    До того як я почав використовувати код для виведення схожих записівя користувався плагіном WordPress Related Posts і хочу помітити, що зовнішній вигляд списку нічим не відрізняється ні при використанні плагіна, ні після відмови він на користь коду. І це дуже добре, що читач зовні не знаходить відмінностей, йому не доводиться звикати до чогось нового. Та я й сам люблю стабільність.

    Небагато про стабільність… Ось уже протягом двох місяців Блог Вільного Вебмайстра трохи змінив свій зовнішній вигляд і перейшов від триколонкового дизайну (2 сайдбари + основна частина) до двоколоночного (залишився один правий сайдбар, основна частина розширилася). Я так і не знаходив часу дізнатися у своїх читачів думки щодо змін. Як Ви вважаєте, так краще?

    Вибачаюсь за оффтоп, продовжую тему і власне наводжу сам код, здатний замінити плагіни та виводити список схожих записів без плагінів наприкінці кожної статті:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

    Читайте також:

    ID); if ($categories ) ( $category_ids = array () ; foreach ($categories as $individual_category ) $category_ids = $individual_category -> term_id ; $args = array ( "category__in" => $category_ids , "post__ $post -> ID ) , "showposts" => "5" , "orderby" => "rand" , "ignore_sticky_posts" => "1" , "no_found_rows" => true , "cache_results" => false ) ; my_query = new wp_query($args ) ; if ( $my_query -> have_posts () ) ( echo "
      " ; while ($my_query -> have_posts () ) ( $my_query -> the_post () ; ?>
    • ">
    • " ; ) wp_reset_query() ; ) ?>

    Читайте також:

    ID); if ($categories) ( $category_ids = array(); foreach($categories as $individual_category) $category_ids = $individual_category->term_id; $args=array("category__in" => $category_ids, "post__not_in" => $post->ID), "showposts" => "5", "orderby" => "rand", "ignore_sticky_posts" => "1", "no_found_rows" => true, "cache_results" => false); my_query = новий wp_query($args); if($my_query->have_posts()) ( echo "
      "; while ($my_query->have_posts()) ( $my_query->the_post(); ?>
    • ">
    • "; ) wp_reset_query(); ) ?>

    Зверніть увагу на рядок:

    "orderby" => "rand",

    Ось у принципі і всі налаштування.

    У CSS можна задати додаткові налаштування зовнішнього вигляду, спеціально для цього код, що виконується, укладено в клас

    1 .sample-posts ( )

    Sample-posts ()

    За допомогою таблиць стилів можна задати фон або підкласти картинку на задній план, обвести в рамку, використовувати інший шрифт, для списку використовувати інші маркери і т.д. - Можливості обмежені лише і власною фантазією!

    Охочих обговорити запрошую до коментування і якщо не важко дайте відповідь, будь ласка, на запитання задане в середині запису)