У дома Офис техника Вградете публикации в страница на WordPress. Изпълним php код в публикации на WordPress

Вградете публикации в страница на WordPress. Изпълним php код в публикации на WordPress

Има ситуации, когато е много удобно да се използва пълният потенциал на езика за програмиране PHP в текста при писане на статии. Говорим за статии за WordPress.

Всеки, който се е опитвал да напише някакъв PHP код в публикация с надеждата, че ще работи, знае, че WordPress третира такъв код като обикновен текст. Въпреки това, понякога е удобно да стартирате, например, някакъв вид изходен цикъл директно в текста, когато пишете статия, тъй като съдържанието на такава статия ще се актуализира динамично. Друг пример би била възможността да извиквате готови функции в публикация, ако е необходимо, или например да вмъкнете някакъв PHP файл в текста на публикация, като използвате php функцията require():

Изискване на "my_script.php";

Като цяло въображението тук е неограничено и истината е, че невъзможността да използвате php в текста на статия в някои случаи може да се превърне в истински проблем. Веднъж се сблъсках с такъв проблем, реших го, като взех и леко модифицирах кода от някакъв плъгин (сега не помня името).

Така че, за да внедрите възможността за вмъкване изпълними PHP скриптове в текста на статия/публикация или статична страница, трябва да добавите следния код към файла functions.php на темата, който вероятно ни е до болка познат:

## Изпълним PHP код в съдържанието на публикации в WordPress. ## PHP_code ## ## @version: 1.0 if("Изпълним PHP код в съдържанието")( add_filter("the_content", "content_exec_php", 0); function content_exec_php($content)( return preg_replace_callback("/\( . +?)\[\/exec\]/s", "_content_exec_php", $content); ) функция _content_exec_php($matches)( if(" off" === $matches)( return "\n\n<"."pre>". htmlspecialchars($matchs) ."\n\n"; ) else ( eval("ob_start(); ($съвпадения); \$exec_php_out = ob_get_clean();"); return $exec_php_out; ) ) )

След като кодът бъде добавен, ще бъде възможно да се използва този тип конструкция в статии:

Php код

Например:

// Глобален коментар $wp_version; echo "Текуща WP версия: $wp_version";

За да деактивирате изпълнението на код, можете да използвате следната конструкция. Той просто ще покаже кода, сякаш сме вмъкнали php кода като текст.

Php код

Важно за защитата

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

За да се предпазите от възможните вредни последици от този хак, можете да направите следната проста защита (което веднага ми хрумна): активирайте изпълнението на конструкцията на php код само ако, например, публикацията има персонализирано поле или, Да приемем, че публикацията е написана в 00 минути. Естествено, само вие ще знаете този трик, в който ще се изпълнява кодът и съответно само вие ще имате възможност да вмъкнете PHP код в статията.

Тази функция ще ви помогне да премахнете дузина ненужни добавки, които вмъкват всякакви прости данни в тялото на публикацията с възможност за предварителна обработка. Да речем, вмъкнете adsense блок навсякъде. Или обменният курс на долара се актуализира в реално време. Или всяка стойност, съхранена в базата данни на WP или таблица на трета страна.

Понякога трябва да вмъкнете текущата дата точно в средата на текста. Тоест датата не е в момента на публикуване на публикацията, а текущата дата от гледна точка на читателя. Или всяка друга променяща се информация или част от JS код без последваща обработка от двигателя. Или нещо, което трябва да се преизчислява всеки път, когато страницата се опреснява, и това нещо трябва да бъде в тялото на публикацията. Или... Е, мисля, че разбираш. :)

Ще напишем плъгин! Много е просто и не изисква никакви познания за създаване на WP плъгини. Единственият му недостатък е липсата на „лице“ в админ панела на WP, т.е. не би било комилфо да се достави такова на някои клиенти. Но за вашите собствени нужди вариантът е отличен.

В папката /wp-content/plugins/ създайте файл с някакво уникално име, да речем „insert-any-data-into-post.php“. Първо, ние пишем блок за коментари, който WP впоследствие ще анализира, за да опише плъгина в своя административен панел. Можете да напишете всякакви данни, които искате, след това да свържете краткия код и да напишете проста функция. Всички кодове:

Накратко това е всичко. :) Вътре във функцията можете да извършвате всякакви действия, като получавате и обработвате всякакви данни. В примера по-горе, когато пишете дизайн навсякъде в публикация, текущата дата ще бъде показана в момента, в който посетителят е видял тази публикация.

Можете също така да въведете различни параметри на тази функция. Да кажем, че кодът по-долу разширява нашата функция и добавя възможност за показване не само на текущата дата, но и вчера/утре, и също така ви позволява да промените типа на датата.

Функция give_me_date_handler ($atts) ( //от масива от атрибути правим разрешени променливи и задаваме стойности по подразбиране, незадължителни, но удобни екстракт(shortcode_atts(array("type" => "yesterday,today,tomorrow", "format" => "short ,full"), $atts)); //да решим коя дата ни трябва switch($type) ( case "tomorrow": $time = strtotime("+1 day"); break; case "yesterday" : $time = strtotime("-1 ден"); прекъсване; по подразбиране: $time = time(); ) // повторение на типа дата if ($format == "short") $date = date("d.m.Y" , $time); else $date = date("r", $time); return $date; )

Променливите за нашата функция се задават чрез таг в публикацията по следния начин:

Резултат от етикета, написан по-горе: 21.08.2019 г

Екранна снимка от административната област за редактиране на публикации:

Чрез функцията можете да изтеглите данни от базата данни и да ги върнете; можете просто да върнете JS код, като го опаковате в ob_start() и ob_end_clean() за удобство. Можете също така да създадете няколко кратки кода и съответно няколко функции, като по този начин поставите в един файл/плъгин всички необходими „вмъквания“ за използване в тялото на публикацията.

Като цяло, полезно нещо!

- 5.0 от 5 въз основа на 2 гласа

В предишната статия, която разгледахме за нашия блог WordPress и тук ще разгледаме как се добавят публикации (бележки) в WordPress.

В WordPress има два типа съдържание, публикации или както още ги наричат ​​бележки и страници. Публикациите са динамично съдържание, което по правило постоянно се появява в блог в определени секции.

Що се отнася до страниците, това са обикновени статични страници, с които можете да създадете например страница за автора или блог.

За да създадете публикация, отидете в административния панел на WordPress: „Публикации“ >> „Добавяне на нови“.

В резултат на това ще се зареди текстов редактор, с чиито инструменти можете да форматирате текста, точно както правите в редактора на MS Word.

1. В полето „Въведете заглавие“, посочете заглавието на поста.

2. Използване на панела „Зареждане/поставяне“, можете да изтеглите и вмъкнете необходимите изображения и медийни файлове във вашата публикация.

3. Използвайки разделите „Визуално“ и „HTML“, можете да преминете към редактиране на HTML код или да продължите да работите във визуална среда.

4. Използвайки инструментите на панела, можете да форматирате текста. Като щракнете върху съответната икона, ще отворите допълнителен панел с много полезни инструменти.

Първо добавете заглавие на публикация, след като посочите заглавието и поставите курсора в текстовото поле на редактора, под заглавието автоматично ще се генерира постоянна връзка, която ще се използва за тази публикация. Създадохме постоянни връзки в урока: "".

Вмъкване на текст.

Ако подготвяте текстовете си в редактора на MS Word, не ги копирайте директно в прозореца на редактора, използвайте инструмента „Поставяне от Word“.

За да направите това, копирайте текста в Word, след това отидете в редактора на WordPress и щракнете върху иконата „Поставяне от Word“, след това поставете текста в прозореца, който се отваря, и щракнете върху бутона „Поставяне“.

Ако поставите текст от Word директно в текстовия редактор на WordPress, тогава зад текста ще копирате много ненужен код, отговорен за форматирането на текста. В резултат на това ще увеличите размера на вашата страница, освен това наличието на голямо количество ненужен код не се третира много добре от търсачките.

Вмъкнете изображение в текста.

За да вмъкнете изображение в текста, поставете курсора на мястото в текста, където искате да вмъкнете изображението, и щракнете върху иконата „Вмъкване на изображение“:

В резултат на това ще се зареди прозорец с три раздела. Използвайки раздела „От компютър“, можете да изтеглите и вмъкнете всяко изображение, намиращо се на вашия компютър. С помощта на раздела „От сайта“ можете да посочите пътя до изображение, което вече се намира на всеки сайт, и с помощта на раздела „Библиотека с файлове“ можете да вмъкнете всяко изображение от медийната библиотека. Медийната библиотека съхранява всички файлове, които сте изтеглили преди това.

Като пример, нека вмъкнем изображение от компютър. За да направите това, щракнете върху бутона „Избор на файлове“, изберете желаното изображение и щракнете върху бутона „Отвори“. В резултат на това изображението ще се зареди. След като изображението бъде качено, пред вас ще се появи прозорец, с помощта на чиито инструменти можете да зададете определени атрибути на изображението.

Полето „Заглавие“ е задължително. Можете да попълните останалите полета „Текст“, „Подпис“ и „Описание“ по желание.

В полето „Връзка“ можете да зададете връзка, която ще води към изображението. По подразбиране връзката отива към изображението, ако щракнете върху бутона „Връзка към публикация“, тогава връзката от изображението ще отиде към самата публикация, ако щракнете върху бутона „Не“, тогава няма да има връзка.

В елемента „Подравняване“ можете да зададете позицията на изображението на страницата.

В елемента "Размер" можете да зададете размера на изображението.

След като посочите всички параметри, щракнете върху бутона „Вмъкване в публикация“ и изображението ще бъде вмъкнато.

Поставете етикета „Напред“.

Изберете формата на запис.

Започвайки с WordPress версия 3.X, бяха въведени формати за публикации. Използвайки формати, можете да изберете конкретен тип показване на публикация. Тази функция позволява на разработчиците на шаблони да създават различни типове публикации в зависимост от техните нужди. Шаблонът, инсталиран в WordPrees по подразбиране, използва три формата за показване на публикации:

Форматите на публикацията могат да бъдат избрани в панела отдясно на редактора. Форматите за публикации са налични само в темите на WordPress версия 3. X. Поддържат се общо 10 формата за публикации, тяхната наличност зависи от темата, която използвате. Когато използвате един или друг формат, маркирайте задава се съответният клас, с помощта на който на даден пост формат може да се придаде специфичен дизайн чрез CSS.

Наскоро един от нашите читатели попита дали има начин да добавите съдържание от WordPress страница към друга страница или публикация. В тази статия ще ви покажем как да вмъкнете съдържание от една страница на WordPress в друга публикация, страница или друг персонализиран тип публикация.

На първо място, трябва да инсталирате и активирате плъгина Insert Pages. След активиране просто отидете в секцията Публикации » Добави новадминистративен панел на сайта, за да го видите в действие.

Ако използвате визуален редактор, ще забележите нов бутон в менюто, наречен „Вмъкване на страница“.

Щракването върху него ще покаже изскачащ прозорец, където можете да изберете страницата, публикацията или персонализирания тип публикация, който искате да добавите.

Можете да изберете как да вмъкнете в публикация/страница, като щракнете върху Настроики. По подразбиране можете да добавите заглавие, съдържание, връзка или да изберете персонализиран шаблон. Ще ви разкажем повече за персонализираните шаблони по-късно в статията.

След като изберете публикация/страница, щракнете върху бутона Вмъкване на страница. Плъгин за добавяне на кратък код, необходим за показване на публикацията/страницата, която сте избрали.

Ако използвате текстов редактор, за да съставяте публикациите си, можете да поставите краткия код ръчно. Опциите за кратък код са доста прости.

Параметърът на страницата за краткия код приема страницата или нейния ID. Моля, имайте предвид, че slug може да бъде всякакъв тип публикация, не непременно страница.

Можете също да посочите ID на записа. Вече писахме за това как да разберете ID на публикация в WordPress.

Добавяне на персонализирани типове публикации към записи в блогове

С помощта на WordPress можете да добавяте всякакъв тип съдържание, като създавате типове публикации за различни типове съдържание.

Приставката за вмъкване на страници ви позволява да добавяте потребителски типове публикации към страници и публикации в блогове. Например, можете да създадете персонализиран тип публикация за галерия с изображения и след това да използвате Вмъкване на страници, за да добавите тези галерии към вашите публикации или страници.

По същия начин можете да създавате потребителски типове публикации за видеоклипове, портфолио, клиентски отзиви и т.н. за да ги добавите към публикации/страници.

Използване на персонализирани шаблони за показване на вмъкнати страници

Вмъкване на страници ви позволява да показвате заглавието, връзката, съдържанието или всички полета за вмъкнати страници. Някои потребители обаче може да се нуждаят от по-фино настроени изходни настройки. Това може да се постигне чрез използване на персонализирани шаблони.

Всичко, което трябва да направите, е да създадете празен php файл и да го качите в папката на вашата тема. Файлът може да се наименува както желаете. Например custom-author.php.

Този персонализиран шаблон работи точно като всеки друг файл с шаблон на съдържание във вашата тема. По-долу е пример за шаблонния файл, който създадохме за показване на авторски страници.

Можете да използвате персонализирани CSS класове във вашия шаблонен файл и след това да приложите стилове във файла със стиловия лист на темата. Използвахме следния код, за да проектираме авторската страница.

H3.author-name (font-size:16px;) .author-thumbnail (float:left; padding:10px;) .author-bio (font-style:italic; font-family: Lora, Georgia, Serif;)

Ето как изглежда финалната версия:

Надяваме се, че тази статия ви е помогнала да добавите съдържание от една WordPress страница/публикация към друга.

Ако трябва да вмъкнете части от код в публикации или страници на уебсайт на WordPress, днешната ни публикация ще ви бъде полезна. Това може да бъде полезно, например, когато публикувате уроци по програмиране и трябва да вмъкнете малки кодови фрагменти в публикациите си като проба. В края на краищата много често е необходимо да показвате на вашите читатели примери на изходен код на PHP, JavaScript, CSS или друг език за програмиране.

По подразбиране WordPress филтрира всеки необработен код, добавен към публикации, страници, уиджети или коментари. Това се прави от съображения за сигурност, така че програмният код да не е изпълним. Ако например първо напишете публикация в Word или друг текстов редактор и след това поставите този текст в полето за редактиране на публикация в конзолата на WordPress, машината автоматично ще конвертира някои знаци. Например символът< в режиме просмотра Текст будет преобразован в < . Т.е., если вы вставляете в Визуальном режиме, например, фрагмент кода, который начинается с

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

Опитайте например да пишете в текстов режим:

Когато превключите на визуален режим (или след публикуване на публикация), няма да видите желания текст Здравей свят!защото системата го е скрила, за да не може да бъде изпълним. Тук стигаме до проблема: как да показваме програмен код в публикации на WordPress?

Лесен начин за показване на код в WordPress

Най-лесният начин да добавите код към вашите публикации е да обвиете програмния код в текстов режим с HTML таг

Този етикет има за цел да покаже кода така, както е отпечатан, т.е. с всички интервали, специални знаци и други подобни.  Би било възможно, разбира се, да не използвате този таг, а да напишете целия програмен код наведнъж, като използвате HTML обекти, но това е много сложен подход.  Много по-лесно е да напишете необходимия код във визуалния режим на редактиране на публикация и след това да преминете към текстов режим и да рамкирате желания фрагмент с тагове 
........
, като в същото време всички „опасни“ програмни знаци се преобразуват автоматично в HTML обекти.

Например кодът по-горе в текстов режим би изглеждал така:

Етикет

е идеален елемент за големи блокове код, защото ви позволява да запазите всички интервали, раздели и други подобни.

За малки блокове код можете да използвате HTML5 таг, специално създаден за код - . В режима за редактиране на текст в WordPress дори има специален кратък код за това. Когато редактирате публикация, изберете желания фрагмент и щракнете върху бутона за код в лентата с инструменти и този фрагмент ще бъде рамкиран с тагове ........ .

Етикет

- блокиране и етикет — inline, т.е. повечето браузъри го показват като display: inline;  и може да се покаже директно в абзаца, а не на нов ред.

Сложен начин за показване на код в WordPress

Като сложен начин за показване на програмен код, включвам специални добавки за това (например Crayon Syntax Highlighter, Syntax Highlighter Evolved и други подобни). Някой може да възрази, че това е, напротив, прост метод, но аз вярвам, че всички видове фантастични плъгини само усложняват всичко. Много често можете да намерите ситуация на уебсайтове, когато предварително проектиран код, използващ кратки кодове на плъгини, все още се показва в браузъра след известно време, например:

но трябва да има красив дизайн и подчертаване на синтаксиса. Много често такива добавки не са съвместими с новите версии на двигателя или уеб администраторите често забравят да ги актуализират. Или по-лошо, те използват няколко от тези добавки наведнъж.

Да, такива добавки много добре правят осветяване на синтаксиса в движение с помощта на JavaScript и CSS, но те са най-вече доста „тежки“ за системата и основното осветяване на синтаксиса може да се направи без приставки, като се използват няколко класа за div, span, code и pre тагове , както и няколко реда CSS стилове.

Изборът е твой!

И бих искал да включа използването на услуги на трети страни като сложен метод за вмъкване на код в страници на WordPress. Има доста сайтове, където можете да напишете почти всеки код и той ще се показва както трябва. Примери за такива услуги: CodePen, GitHub Gists и JSFiddle.

Те осигуряват много хубаво подчертаване на синтаксиса и дори демонстрационен изглед на резултата от изпълнението на кода, но тяхната сложност се състои в необходимостта от използване на iframes или външни JavaScript библиотеки за вмъкване. Използвам този метод само за да покажа демонстрация на резултата от изпълнението на кода.

Заключение

Както можете да видите, добавянето на код към WordPress сайт не е толкова трудна задача, но все пак трябва да знаете основните решения за това.

Ако имате други решения за добавяне на код към публикации/страници на WordPress, моля, уведомете ни в коментарите по-долу.

Ново в сайта

>

Най - известен