Wordpress-те қосудың екі түрлі тәсілі бар функционалдық элементтерблогтың бүйірлік тақтасында немесе төменгі колонтитулында виджеттерді пайдалану, сондай-ақ үлгі файлдарына PHP кодын және арнайы WordPress функцияларын қосу. Бірінші нұсқа күшті техникалық дайындығы жоқ пайдаланушылар үшін ыңғайлы, ол өте түсінікті және қарапайым, екіншісі көрсетілетін ақпараттың барлық нюанстарын басқарғысы келетін әзірлеушілерге арналған. Бірақ кейде осы 2 тәсілді біріктіру қажет болғанда тапсырма туындайды. Ең қарапайым мысал, сіз тұтынушыға арналған веб-сайтты жасаған кезде - ол жобаны басқарудың қарапайым (!) опциялары бар жұмыс істейтін басқару панелін алуы керек. Сіз оны әртүрлі WordPress функцияларымен таныстырмайсыз, онда қандай параметрлер бар, олар қалай жұмыс істейді және т.б. Бұл жағдайда виджетсіз жұмыс істей алмайсыз.

Алдыңғы жазбалардың бірінде мен процесті сипаттадым, бұл бір қарағанда күрделі емес; Негізінде, WordPress тақырыптарының барлығы дерлік виджеттерді қолдайды. Бұл мәселедегі екінші нюанс - барлық мәселелерді пайдалану арқылы шешу мүмкін емес стандартты жиынтықтек негізгі параметрлері бар виджеттер - тақырып және бірнеше опциялар. WP әлдеқайда көп функционалдылықты қамтамасыз етеді, оны кейде қолдануға тура келеді. Мысалы, «Соңғы хабарламалар» виджетін алыңыз және оны салыстырыңыз - виджет сұрыптаусыз, дизайнсыз немесе мұрағат түрінсіз блоктағы сілтемелер санын ғана таңдауға мүмкіндік береді. Виджеттер ыңғайлы, бірақ көбінесе бірнеше опцияны ұсынады. Бұл мәселеде көмектесетін нәрсе - PHP Code Widget плагинін пайдаланып виджеттер арқылы PHP кодын тікелей қосу.

PHP коды виджет плагині

Бұл плагин WordPress-ке виджеттің жаңа түрін қосады, ол стандартты мәтіндік блокқа өте ұқсас. Ол PHP коды деп аталады. Плагинді жүктеп алуға болады, орнату стандартты - плагин файлын /wp-content/plugins/ ішіне көшіріңіз, оны әкімші панелінде белсендіріңіз, содан кейін виджеттер бетінде жаңа элемент пайда болады.

Php кодын қосу үшін виджетті үлгі виджет тақтасындағы қажетті орынға сүйреп апарып, мәтін өрісіне PHP кодын жазыңыз. Ешқандай қате болмас үшін және аудармашы кодты қажетінше түсіндіретіндей дұрыс синтаксисті пайдалану маңызды! Көріп отырғаныңыздай, плагинді пайдалану өте оңай, мен оны бірнеше сайттарда сынап көрдім, ол керемет жұмыс істейді. Балама ретінде мен PHP-ден басқа JavaScript және қысқа кодтармен жұмыс істейтін кеңейтілгенін де ұсына аламын.

PHP Code Widget плагиніне келетін болсақ, виджеттер арқылы код қосу принципінің өзі пайдаланушыға виджет механизмі арқылы үлгімен жұмыс істеуге толығымен ауысуға көмектеседі. Пайдаланушы өте техникалық болмаса да, кейбір үлгі элементтерін өшіру немесе өзгерту процедурасы үлгі файлдарында қажетті код бөлігін іздеуден әлдеқайда оңайырақ болады. Бұл тәсілді пайдалана отырып, сіз виджеттерді қолдайтын және кейбір өзгертулер енгізу қажет жерде бұрыннан жасалған жұмыс сайттарымен оңай жұмыс істей аласыз. Мысалы, WordPress-ке сапе кодын қосу - виджеттер арқылы пайдаланушы қайда және не көрсетілетінін түсіне алады. Немесе сізге сайтта кейбір өзгерістерді әзірлеуге тапсырыс берілді және оларды шаблондық файлдарда енгізу оңай емес - қойындылардың бірінде ақпаратты көрсету керек қойындылары бар блок бар делік - бұл қойындысының плагиндерін жою өте орынсыз, содан кейін үлгі арқылы қолдауды қолмен қосыңыз, содан кейін қажетті өзгертулер үшін кодты енгізіңіз. PHP Code Widget плагинін орнату және виджеттер арқылы қойындыларға ақпаратты қосу бірнеше есе оңай.

Жалпы алғанда, виджеттер арқылы PHP кодын қосу қажеттілігі әрқашан бар деп айта алмаймыз, бірақ кейде сіз көріп отырғандай, мұндай тапсырма туындауы мүмкін. Бұл жағдайда PHP Code Widget барлық мәселелерді оңай және жылдам шешуге көмектеседі. Мұндай қарапайым, бірақ өте пайдалы модуль.

P.S. Кітаптарға онлайн тапсырыс беру оңайырақ болды - арнайы онлайн кітап дүкенінде өнімдердің кең таңдауы, қолжетімді бағалар және тікелей үйге жеткізу бар.
Одесса автомеханиктері бәрін жасай алады; егер сізге Одессадағы стартерлер мен автомобиль генераторлары қажет болса, оларды сатып алыңыз немесе орнатумен бірге тапсырыс беріңіз - проблема жоқ, Starter.od.ua сайтына хабарласыңыз.

Сәлем, достар. Бүгін біз оны қалай жұмыс істеуге болатынын анықтаймыз кез келген PHP WordPress-тегі виджеттерде, мақалалар мен беттердегі код. Әдепкі бойынша, мұндай функция осы CMS жүйесінде қол жетімді емес және пайдаланушы сене алатын максимум HTML кодын жүзеге асыру болып табылады.

Неліктен PHP коды әдепкі бойынша жұмыс істемейді?

Неліктен әзірлеушілер мұндай танымал және ыңғайлы қозғалтқышты марапаттамаған сияқты пайдалы мүмкіндіктер PHP кодын автоматты түрде орындауға арналған. Басында мен бұл туралы ойладым, бірақ мен бұл саясат қауіпсіздік тұрғысынан жүргізіліп жатыр деген қорытындыға келдім, өйткені виджеттерде немесе ішкі хабарламаларда PHP-ді дұрыс қолданбау түзетілмейтін салдарға әкелуі мүмкін - дерекқорда және бүкіл сайтта бір нәрсе бұзылады. апатқа ұшырайды.

Сондықтан РНР-мен жұмыс істеу бағдарламашыларға немесе осы мәселеде азды-көпті дамыған адамдарға жүктеледі - кез келген сценарийлер тікелей файлдарда орындалады.

Қоғамдық сайттар үшін (бірнеше авторлар бар) мақаланың негізгі бөлігінде PHP іске қосу қасақана саботаж жасау қаупін арттырады, өйткені кез келген автор мақаланы өңдеу терезесі арқылы сайтқа толық қол жеткізе алады.

Қауіптілік дәрежесіне қарай мен бұл жағдайды 3 деңгейге бөлер едім:

  • Барлығын әзірлеушілер ойлағандай қалдыру сайтты қауіпсіз, кездейсоқ немесе әдейі зақымдау қиын.
  • Виджеттерде PHP орындалуына рұқсат етіңіз – қауіптіліктің орташа деңгейі, тек сайт әкімшісі қол жеткізе алады.
  • Кодты кез келген жерде пайдалану қауіпті, өйткені мақалалар мен беттерді өңдеуге рұқсаты бар кез келген адам (модераторлар, авторлар) сайтты басқара алады.
  • Виджеттерде PHP не үшін қажет?

    Сұрақ жеке, өйткені кез келген нәрсені осы бағдарламалау тілі арқылы жүзеге асыруға болады. Жеке өзім бұл жазбаны жазуға мен қазір веб-сайтты жасап жатқан клиенттің тапсырысы бойынша түрткі болдым. Бүйірлік тақтада бөлек виджетте бір санаттағы жаңалықтар тізімін көрсету қажет болды - «Жаңалықтар». Стандартты WordPress виджетінде бұл мүмкіндік жоқ.

    Сұрақ сәйкес мүмкіндіктері бар плагинді табу немесе қарапайым PHP кодын пайдалану арасында болды. Мұндай тапсырманың сценарийі өте кішкентай және мен сайтты басқа жерде пайдаланылмайтын қосымша плагинмен жүктегім келмеді.

    Жалпы, РНР орындауға рұқсат беру арқылы біз 2 мәселені шеше аламыз:

    • Сайттың кейбір плагиндерін сценарийлермен ауыстырыңыз және осылайша хостингке жүктемені азайтыңыз;
    • Плагиндер әлі жоқ функцияларды іске қосыңыз.

    Бірінші кезеңде мен виджеттер туралы, содан кейін бөлек блокта мазмұндағы кодты шығару туралы айтатын боламын.

    Виджеттердегі PHP плагиндері

    Плагиндердің артықшылығы: WordPress тақырыбын өзгерту кезінде шаблонға қосылған функциялар бұзылмайды, барлығы веб-шебердің араласуын қажет етпей жұмыс істейді. Тақырыпты өзгерту кезінде үлгіге қосылған ілмектерді жаңасына қолмен ауыстыру қажет болады.

    Жоғарыдағы мысалда мен клиентке веб-сайт жасап жатырмын, егер ол дизайнды өз бетінше өзгерткісі келсе, functions.php файлдары және басқалары арқылы жасалған параметрлер жоғалып кетеді, сондықтан мен оны мүмкіндігінше жеңілдетемін. оған плагиндерге сүйене отырып, сайтты басқаруға болады (әсіресе оның тауашасында трафик аз және көп жүктеме болмайды).

    PHP код виджеті

    Мен бұл плагинді өз жұмысымда ұзақ уақыт бойы пайдаланып келемін, ол қарапайым мәтінге ұқсас, тек мәтін мен HTML-ге қосымша PHP өңдеуге қабілетті виджеттердің тізімін қосады.

    PHP коды виджеті WordPress ресми репозиторийінде бар және оны аты бойынша оңай табуға болады. Мұндай плагиндерді қалай орнатуға болады.

    Ешқандай параметрлер қажет емес, виджет плагинді орнатып, іске қосқаннан кейін бірден тізімде пайда болады. «PHP кодын» бүйірлік тақтаға сүйреңіз және сол жерге кез келген сценарийді қосыңыз.

    WordPress виджетіндегі PHP плагинсіз

    Бұл жағдайда бізге ауыстыратын ілмек қажет стандартты функция, ол PHP өңдеуге мүмкіндік беретін функциясы бар WordPress мәтіндік виджетін қамтамасыз етеді.

    Бұл ілмек ағымдағы тақырыптың functions.php файлына қосылады (жабу жақшасының ең соңында?>). Осыдан кейін PHP кодтары стандартты мәтінде жұмыс істей бастайды, жаңа виджет опциялары пайда болмайды.

    Дайын код:

    Қосу_сүзгі("виджет_мәтін"," text_html_php_виджет ",100); text_html_php_widget($text) функциясы ( if(strpos($text,"".$text); $text = ob_get_contents(); ob_end_clean(); ) $мәтінді қайтарады; )

    Бірінші жол – text_html_php_widget деп аталатын сайын стандартты мәтіндік виджет функциясын жаңасымен ауыстыратын сүзгі, содан кейін жаңа функцияның сипаттамасы бар.

    Неліктен WordPress мақалалары мен жазбаларында PHP коды

    Жазбалардың ішінде орындалатын PHP коды виджеттерге қарағанда әлдеқайда аз қажет, сондықтан мақаланың бірінші бөлігінде ықтимал қауіпті функцияларды қажетсіз қосудан аулақ болу үшін бүйірлік тақтаны бөлек қарастырдым.

    Бірақ посттарда да сценарийлерді пайдалану қажет. Ең көп таралған мысал - плагинсіз сайт картасын көрсету. Рас, сіз карта үшін басқа техниканы пайдалана аласыз - арнайы бет үлгісін жасаңыз (бұл бөлек тақырып).

    Мен бір рет келесі мақсат үшін PHP шығаруым керек болды:

    Мен видео сайт жасадым. Сериалдың эпизодтары ойнату тізімдерінде маусым бойынша көрсетілді және маусымның әрбір ойнату тізімінің астында сіздің парағыңызға сілтеме бар эпизодтар тізімін көрсету қажет болды. Бұл сайт картасына ұқсайды, тек күрделірек - қорытындыны жеке бөлімдердің тізімдерінен шығару керек болды. HTML кодын пайдаланып әрбір сілтемені қолмен енгізу мүмкін болды, бірақ бірнеше жүз эпизодтар бар және процедура жалықтырады. Оның үстіне, егер жаңа серия пайда болса, оған сілтеме қолмен қосылуы керек еді - ыңғайсыз. Сондықтан мен іске асыру үшін PHP функцияларын пайдалануды шештім.

    Exec-PHP мазмұнында PHP орындауға арналған плагин

    Бұл плагин 7 жыл бойы жаңартылмағанына қарамастан, ол өз жұмысын тамаша орындайды. Мен оны бір себеппен таңдадым - ол бәсекелестер сияқты қысқа кодтарды пайдаланбайды, бірақ оны хабарламаларға енгізуге мүмкіндік береді WordPress кодыбастап, оның таза түрінде.

    Exec-PHP плагині репозиторийде және қозғалтқыштың басқару тақтасындағы мәзір арқылы орнатылады.

    Параметрлердің біреуі ғана бар - мәтіндік виджетте кодты орындауға рұқсат/тыйым салу, жазбалардағы және беттердегі жұмысты өшіру опциясы жоқ, егер оны жою қажет болса, плагинді өшіріңіз.

    Мақалаға PHP кодын енгізу үшін оны HTML режиміне ауыстыру керек (Мәтін қойындысы). Көрнекі режим кодты бұзуы мүмкін.

    WordPress мақалаларындағы PHP кодын плагинсіз орындау

    Виджеттерге ұқсастық бойынша біз плагинді мазмұндағы PHP сценарийлерін орындауға мүмкіндік беретін арнайы функциямен алмастыра аламыз. Өкінішке орай, мен тегтерге жауап беретін плагин жағдайында код автоматты түрде жұмыс істейтін опцияны таба алмадым. Қысқа кодты пайдалануды талап етеді. Менің PHP білімім оны өзім жазуға жеткіліксіз болды қажетті функция, сондықтан мен оны сол күйінде беремін. Қысқа кодпен жұмыс істеу мүмкіндігі бар елеулі кемшілігі, бұл жұмысты қиындатады, мен бұл туралы төменде айтамын.

    Төмендегі функцияны қалай пайдалануға болады

  • Біз оны тақырыптың functions.php файлына қоямыз;
  • Мақаланың дұрыс жеріне құрылысты енгіземіз - орындалатын кодсыз
  • Функция:

    /* WordPress мақалалары мен беттерінде php іске қосу: код */ start_php($matches)( eval("ob_start();".$matches."$inline_execute_output = ob_get_contents();ob_end_clean();"); $inline_execute_output қайтару ; ) функциясы inline_php($content)( $content = preg_replace_callback("/\((.|\n)*?)\[\/startphp\]/", "start_php", $content); $content = preg_replace( "/\((.|\n)*?)\[\/startphp\]/", "$1", $content return $content ) add_filter("the_content", "inline_php");

    Кемшілік

    Енгізілген PHP коды ішінде болса HTML кірістірулерінемесе мәтін, ол жұмыс істемейді. Кез келген мәтінді немесе тегтерді echo пәрмені арқылы енгізу керек болады, бұл әрқашан қолайлы бола бермейді. Яғни, код 100 дұрыс пішімі бар таза PHP болуы керек.

    Дұрыс

    Эхо «Ол осылай жұмыс істейді»;

    Қате

    Эхо «Бұл жол дұрыс»; Бұлай жұмыс істемейді

    Exec-PHP плагинінде мұндай мәселе жоқ - мәтін де, HTML да орындалады, бірақ бәрі РНР элементтерікод сәйкес тегтерде жиектелуі керек.

    Көптеген веб-шеберлер үшін осы мақалада сипатталған тақырып шығармашылық үшін шексіз мүмкіндіктер ашады - сіз бұрын жасалмайтын нәрсені жүзеге асыра аласыз, сонымен қатар көптеген плагиндерден құтылып, оларды әртүрлі сүзгілермен, функциялармен және ілгектермен ауыстыра аласыз.

    Бұл сіздің негізгі файлыңыз WordPress тақырыбы. /wp-content/themes/(тақырыптың атауы осы жерде)/functions.php ішінде орналасқан.
    Ол тақырыптың маңызды қасиеттерін анықтайды, ілмектерді реттейді, сыртқы түріжәне оның функционалдығын қосады, сонымен қатар сізге қажет кейбір функцияларды қосады. Бұл файл кез келген файлды ашқан сайын жүктеледі WordPress беттері, сондықтан оны сайттың кез келген элементін өзгерту үшін пайдалануға болады. Осыған байланысты көптеген кеңестер « WordPress-те плагиндерсіз бір нәрсені қалай өзгертуге болады"көбінесе бұл функция үшін бөлек плагин жасаудың немесе пайдаланудың орнына functions.php файлына өзгертулер енгізуге қатысты. дайын шешім. Бұл көбінесе файлдағы ақпараттың шамадан тыс жүктелуіне әкеледі, бұл кодты талдауды қиындатады және түзетулерді одан да қиындатады. Бірақ бұл ең қауіпті нәрсе емес. Ең қауіптісі, белсенді тақырыпты өзгерткен кезде сайттың кейбір немесе барлық қажетті функциялары жойылады.

    functions.php мен плагиннің айырмашылығы неде?

    Ештеңе. Негізінде, functions.php ағымдағы тақырыпқа байланысты жаһандық өшірілмеген плагиннің бір түрі болып табылады. Оның WordPress жүйесінде қалай қосылғанын wp-settings.php сайтында көруге болады. дан көрініп тұрғандай бастапқы код, ол барлық плагиндерден кейін жүктеледі, бірақ бұл қосылған плагиндердегі бір нәрсені қайта анықтау мүмкіндігін қоспағанда, ешқандай кемшіліктер мен артықшылықтарды қамтамасыз етпейді. Бұл кодты орындау жылдамдығына да әсер етпейді. Тек плагиндер мен functions.php мазмұны әсер етеді. Сондықтан тақырып үшін белсенді плагиндерді таңдағанда абай болыңыз және сізге пайдасы аз қажетсіздерін тастаңыз, сонда сіз сайтыңызды жеңілдете аласыз және оның жұмысын жылдамдата аласыз.

    functions.php қашан пайдалану керек

    Мына ережені орындаңыз: егер функционалдылық сайттың жұмысына емес, ағымдағы тақырыпқа тікелей қатысты болса, оны functions.php ішіне жазыңыз.

    Мысалы, болуы мүмкін

    • Нобайларды орнату
    • Бүйірлік тақта өлшемдерін орнату
    • Виджеттер үшін орындарды орнату
    • Шарлау мәзірі астындағы орындарды жариялау
    • Тақырып параметрлері
    • Тақырыптың қосымша мүмкіндіктері
    Functions.php қолданбасын қашан болдырмау керек

    Егер функционалдылық белсенді тақырып өзгертілсе де жұмыс істеуі керек болса, оны бөлек плагинге жылжыту туралы қамқорлық жасау керек.
    Бұған мыналар кіруі мүмкін:

    • Трафик есептегіштерін анықтау (Google Analytics, Yandex.Metrika, Liveinternet)
    • Қосымша әкімші функцияларын орнату (мысалы)
    • Бастапқы код конфигурациясы()
    • Қысқа кодтарды анықтау
    • Тіркеу

    Тізімдер толық емес, олардың мазмұнын өзіңіз анықтай аласыз.

    Functions.php ішінде болмаса, бұл кодты қайда қоюым керек? Сіз олар үшін арнайы плагиндер жаза аласыз, бірақ одан да қызықты және қарапайым әдіс бар.

    mu-plugins functions.php балама ретінде

    MU Plugins деп аталатын WordPress MU (Multi-User) нұсқасынан WordPress-тің заманауи нұсқаларында бізге қызықты функционалдылық келді. Оның мәні мынадай болды. WordPress MU әкімшісі кейде сайттардың бүкіл желісі үшін плагиндерді анықтауы керек болды. Бұған әдеттегі функционалдылықпен қол жеткізу мүмкін болмады, сондықтан арнайы бөлім енгізілді: /wp-content/mu-plugins/, мұнда олар анықталған. Тағы бір қызығы, осы каталогтағы плагин файлдары басқалардан бұрын жүктеледі, бұл кейбір тұрақтыларды немесе параметрлерді алдын ала анықтауға мүмкіндік береді.
    Кейінірек WPMU жойылды, оның коды негізгі блог жүргізумен біріктірілді, енді кез келген WordPress MU-плагиндер функционалдығын пайдалана алады, ол енді міндетті түрде пайдалануды білдіреді, яғни пайдалану үшін міндетті.

    mu-плагиндерді қалай пайдалануға болады

    Алдымен сізге /wp-content/mu-plugins/ арнайы бөлімін жасау керек.
    Біз оған қажетті плагин файлдарын орналастырамыз. Кәдімгі плагиндерден айырмашылығы, арнайы синтаксисті сақтаудың қажеті жоқ және функционалдылықты тікелей жариялауға болады.

    Мұнда, мысал ретінде, қатысу санауыш коды бар файл жасалды.
    Бұл файлдың ішінде келесідей көрінеді

    // ...Осы жолдың орнына есептегіш кодты енгізіңіз...

  • Плагинді басқару параметрлеріне өтіп, жаңа плагинді іске қосыңыз.
  • Кодқа тақырып, сипаттама және түсініктемелерді өзіңіздікімен ауыстыруға болады. Енді сіз осы плагинге барлық қажетті үзінділер мен теңшеулерді орналастыра аласыз. Белсенді тақырып қайтадан өзгертілгенде сайттың функционалдығын жоғалтудан қорықпай.

    Біз осы жерде тоқтай аламыз, бірақ бұл туралы айтпағаным дұрыс болмас еді. MU плагиндері.

    MU плагиндері (Плагиндерді пайдалану керек)

    MU плагиндері плагинді өшіру мүмкін емес және себеп болуы мүмкін жағдайларда өте пайдалы болуы мүмкін сыни қателерсайттың жұмысында. Мысалы, клиент сайттарында. Сайтты басқару консолінде қате клиент әрекеттерін болдырмау үшін.

    MU плагиндері қажет плагиндер WordPress көмегімен, олар арнайы каталогта орнатылған және әрқашан белсенді. MU плагиндері сайт плагиндерінің жалпы тізімінде көрсетілмейді, олар үшін бөлек қойынды бар. Оларды MU плагин файлын каталогтан тікелей жою арқылы ғана өшіруге болады.

    MU плагиндерінің артықшылықтары
    • MU плагиндерін белсендірудің қажеті жоқ, олар әрқашан белсенді және сайтты басқару консолінде өшірілмейді;
    • MU плагині қосылатын және қосылатын файлды mu-plugins каталогына жай жүктеп салу арқылы іске қосылады;
    • MU плагиндері әдеттегі плагиндер жүктелмес бұрын алфавиттік ретпен жүктеледі.

    MU плагиндеріне арналған ішкі каталогтарға, әдеттегіден айырмашылығы, қолдау көрсетілмейтінін ескеріңіз. Соңғы шара ретінде сіз плагин жасай аласыз және оған каталогтардан плагиндерді жүктейтін қарапайым жүктегішті жаза аласыз. Мынадай нәрсе:

    Қорытындысында

    Көріп отырғаныңыздай, функционалдық плагиндерді пайдалануда күрделі ештеңе жоқ. Және оларды пайдаланудың артықшылықтары айқын. Мен плагиндер сайтта қандай да бір керемет жүктемені жасайды деген пікірді жиі естідім. Көптеген пайдаланушылар плагиндерді пайдаланудың қауіптілігі туралы белгілі бір алғышарттарға ие. Бұл мүлдем дұрыс емес. Белгісіз біреу әзірлеген және белгісіз көздерден жүктеп алған солақай плагиндер зиян келтіруі мүмкін. Плагинді нашар оңтайландыру, ескірген PHP және WordPress функцияларын пайдалану. Зиян одан болуы мүмкін үлкен мөлшербір уақытта іске қосылған плагиндер. Әсіресе қайталанатын функционалдылықпен. Тақырыппен плагиндер мен плагиндер арасында банальды қақтығыс болуы мүмкін. Құзыретті және ақылға қонымды тәсілмен плагиндер сіздің сайтыңызға ерекше пайда әкеледі.