WordPress дахь PHP код - шилдэг туршлагууд. WordPress-д зориулсан кодын ашигтай оруулга (хэсэг) wp дээр код бичих жишээ

Таны амьдралд WP сайтынхаа сэдэв эсвэл зарим залгаасын функцэд ямар нэг зүйл нэмэх (засварлах) тохиолдол байсан гэж би бодож байна. Түүнээс гадна хөгжүүлэгчид энэ боломжийг оруулаагүй болно стандарт гэсэн үгудирдлага. Таны сүнс ямар ч хязгаарлалтыг хүлээн зөвшөөрдөггүй бөгөөд сонирхолтой нислэг шаарддаг 🙂 Таны ойлгож байгаагаар ямар ч нөхцөл байдлаас гарах арга зам байдаг, энэ тохиолдолд бид залгаасын кодыг засах хэрэгтэй болно, сэдэв ...

Кодыг засварлахад тулгардаг гол бэрхшээл бол таны хийсэн өөрчлөлт харамсалтай нь удаан үргэлжлэхгүй бөгөөд дараагийн шинэчлэлтээр цуцлагдах магадлалтай. Хэрэв та шинэчлэлтээс хол байх шийдлийг олж харж байгаа бол шинэчлэлтүүд нь дараах зүйлсийг агуулж байгаа тул би таныг энэхүү аюултай үл тоомсорлох шийдвэрээс татгалзаж зүрхлэх болно. чухал өөрчлөлтүүдаюулгүй байдал, алдаа засварын хувьд ихэвчлэн шинэ боломжууд байдаг.

Үүний үр дүнд бидний динамик өөрчлөгдөж буй ертөнцөд зогсохуйц аргуудыг ашиглах нь зүйтэй бөгөөд үүний зэрэгцээ таны үнэт цагийг хэмнэх болно.

Анхааруулга!

Интернет дээр та ихэвчлэн файлд өөрчлөлт оруулах зөвлөмжийг олж болно. functions.php- Хэрэв үүнгүйгээр хийх боломж байгаа бол энэ файлд хүрэхгүй байх нь дээр. Доорх аргуудаас та үүнийг хэрхэн хэрэгжүүлэхийг харах болно. Ямар ч тохиолдолд та хүүхдийн сэдэв үүсгэж, эцэг эхийн сэдвийг хэвээр үлдээх хэрэгтэй.

Функцийг угтвар тавихдаа дараах маягт дахь захиалгат кодыг үргэлж ашиглана. _ угтвар(өөрчлөгдсөн функцийн нэр рүү). Энэ үйлдэл нь таныг сэдэв эсвэл залгаасын бусад функцуудтай зөрчилдөхөөс аврах болно.

Тэгэхээр та WP сайтад хэрхэн код нэмэх вэ?

1) Тусгай залгаас

Тиймээс та кодын хэсгүүдийг оруулах боломжтой бөгөөд шинэчлэлтийн явцад устгагдахгүй, мөн тэдгээрийг засах, ирээдүйд идэвхжүүлэх, эсвэл эсрэгээр шаардлагатай бол идэвхгүй болгох боломжтой.

Үүнийг хийхийн тулд маш энгийн: эхлээд та залгаасдаа лавлах үүсгэх хэрэгтэй бөгөөд үүнийг зөв нэрлэх хэрэгтэй, жишээлбэл, moy-plugin (зөвхөн зураас ашиглана уу, арын зураас ашиглана уу)

Дараа нь бид үндсэн залгаас файлыг үүсгэнэ. Таны ойлгож байгаагаар энэ нь нэр, тайлбар, үндсэн мэдээлэл, түүнчлэн залгаасыг халдагчдаас хамгаалахад туслах кодыг агуулсан байх ёстой. Мөн бид энэ файлыг my-plugin.php гэж нэрлэе. .php өргөтгөл нь WP-г ямар хэлээр үүсгэснийг харуулах болно өгсөн файл.

Та аль ч хэсэгт дээр дурдсан аргаар файл үүсгэж болно текст засварлагчжишээлбэл, үйлдлийн системд аль хэдийн анхааралтай суулгасан NotePad дээр Windows систем(Mac дээрх TextEdit). редактор Microsoft WordҮүнийг ашиглахгүй байх нь дээр, учир нь энэ нь текстийг форматалдаг бөгөөд энэ тохиолдолд бидэнд огт хэрэггүй болно.

Тиймээс энд нэмэх код байна:

Мөн энэ кодын доор өөрийн бүтээлч сэтгэлгээний шаардсан өөрчлөлтийг хийнэ үү. Та төгсгөлд нь хаах PHP хаягуудыг нэмэх шаардлагагүй. Энэ тохиолдолд гарчиг, тайлбар, URL нь таны админ самбарт харагдах болно. Мэдээжийн хэрэг та "ClubWP" мэдээллийг өөрийн мэдээллээр сольж болно.

Үүний дараагаар үүсгэсэн зүйлийг зип архивт хийж, сайтынхаа ftp руу илгээхэд л үлддэг. Ирээдүйд ийм байдлаар та залгаасдаа ямар нэгэн өөрчлөлт хийх боломжтой болно.

Энгийн аргаар та өөрийн хэрэгцээнд зориулж энгийн залгаас үүсгэх болно.

2) Кодын хэсгүүдийн залгаас

Хэрэв дээр дурдсан арга нь танд хэцүү, эсвэл та маш практик хүн бөгөөд илүү хурдан үр дүнд хүрэхэд дассан бол Кодын хэсгүүдийг танд зориулж тусгайлан бүтээсэн болно. Дээр тайлбарласан функцийн нэгэн адил залгаас нь таны кодыг таны сэдвийг ашиглахгүйгээр цаашид засварлах боломжтой болгодог.

Залгаасыг суулгасны дараа админ самбар дээр шинэ "Хэсэг" цонх гарч ирэх бөгөөд үүний дагуу та шинэ хэсгүүдийг нэмж болно. Үүний тулд та код болон түүний зорилгын талаархи мэдээллийг оруулах боломжтой.

Тиймээс та дараахь зүйлийг хийх боломжтой: залгаас хэлбэрээр тусгай кодыг идэвхжүүлэх эсвэл идэвхгүй болгох. Маш тохиромжтой, практик, учир нь. Заримдаа сэдэв болон залгаасуудтай зөрчилдөх боломжтой бөгөөд та үүнийг хялбархан ойлгож, үүсгэсэн кодыг идэвхгүй болгох боломжтой.

3) Хүүхдийн сэдвийн Functions.php-г засварлах

Хэрэв залгаасуудыг ашиглах нь танд тохирохгүй байгаа бөгөөд та сайтынхаа сэдэвт шууд өөрчлөлт оруулах шаардлагатай бол энэ арга нь танд зориулагдсан болно. Та үүнийг зөвхөн хүүхдийн сэдвээр хийх боломжтой гэдгийг би танд сануулж байна.

Энэ аргыг ашиглахын тулд би өөрийн загварыг санал болгож байна functions.phpхүүхдийн сэдэв. Файлыг задлаад засварлана уу style.css(загварын нэр болон URL импорт)

P.S.Ирээдүйд амьдралаа хөнгөвчлөхийн тулд бүх хүч чадлаа хичээгээрэй, шаардлагатай бол алдаа засах, захиалгат кодыг засварлах зэрэг хэцүү хэсэг.

Нэгэн өдөр та өөрийн вэбсайт эсвэл блог үүсгэхээр шийдэж, удирдлагын системд WordPress-ийг сонгосон ... Цаг хугацаа өнгөрөх тусам таны сайт улам бүр уншигдахуйц болж, илүү алдартай болохын тулд зарим функцийг нэмэх хэрэгтэй гэдгийг та ойлгосон. сайт руу оруулах эсвэл зүгээр л зарим үйлдлийг автоматжуулах.

Та wordpress-д зориулсан залгаасуудын "агуулах" руу ороод, танд хэрэгтэй залгаас байхгүй байгааг олж мэдээрэй. Юу хийх вэ? Яаж байх вэ? Хэрэв та php, layout дээр програмчлалын үндсийг бага зэрэг мэддэг бол энэ нь танд хэцүү биш байх болно. WordPress-д зориулж өөрийн залгаасыг бичээрэй.

Одоо "гал тогоо" руу очиж залгаасыг бэлдье.

P.s. Хэрэв танд PHP болон layout-ийн талаар мэдлэг байхгүй бол бүү бухимд, хэн нэгнээс шаардлагатай функцийг бичихийг хүс 🙂

Та залгаас бичиж эхлэхээсээ өмнө залгаас бичих үндсэн зарчмууд болон зарим кодын жишээг тайлбарласан WordPress баримт бичигт хандах хэрэгтэй.

Би энэ мэдээллийг хуулбарлахгүй, харин шууд код бичих рүү шилжих болно.

Сайтынхаа талаарх сэтгэгдлийг хадгалах, харуулах боломжийг олгох энгийн залгаасыг бичье. Мэдээжийн хэрэг, ийм залгаасууд аль хэдийн байдаг, гэхдээ жишээ нь энэ нь зүгээр л ажиллах болно.

Бидний хийх хамгийн эхний зүйл бол залгаасныхаа өвөрмөц нэрийг олох болно - " AdvUserReviews«.

Дараа нь таны сайтын "/wp-content/plugins/" лавлах хэсэгт "advuserreviews" нэртэй шинэ лавлах үүсгэцгээе. Үүний дотор бид "advuserreviews.php" файлыг үүсгэх болно. Энэ нь ерөнхий эхлүүлэх үүрэгтэй үндсэн файл байх болно. (Файлд UTF-8 кодчилол ашиглах нь дээр).

Файлын хамгийн эхэнд та залгаасын талаархи үндсэн мэдээллийг зааж өгөх ёстой

Одоо, хэрэв та хяналтын самбар руу очвол систем нь шинэ залгаас олсон бөгөөд үүнийг идэвхжүүлэхийг санал болгож байгааг харж болно. Гэхдээ үүнийг хийхэд эрт байна.

Бид шинэ залгаасыг OOP загвараар бичих бөгөөд бүх өгөгдөл боловсруулалт нэг файлд байх болно. Файлын үндсэн фреймийг үүсгэцгээе.

// Шууд дуудлагыг зогсоох if(preg_match("#" . basename(__FILE__) . "#", $_SERVER["PHP_SELF"])) ( die("Та энэ хуудас руу шууд залгах эрхгүй."); ) хэрэв (!class_exists("AdvUserReviews")) ( class AdvUserReviews ( // Нийтийн дотоод өгөгдлийг хадгалах $data = массив(); // Объект бүтээгч // Үндсэн хувьсагчийн функцийг эхлүүлэх AdvUserReviews() ( ) ) ) global $rprice; $rprice = шинэ AdvUserReviews();

Одоо объект үүсгэгч дээр дараах кодыг нэмнэ үү.

AdvUserReviews() функц ( глобал $wpdb; // Манай залгаасын эхлүүлэх тогтмолыг зарлах DEFINE("AdvUserReviews", үнэн); // Манай залгаас файлын нэр $this->plugin_name = plugin_basename(__FILE__); // Манай залгаасын URL $ this->plugin_url = trailingslashit(WP_PLUGIN_URL."/".dirname(plugin_basename(__FILE__))); // Бидний шүүмжийг хадгалах хүснэгт // $wpdb хувьсагчийг дэлхий даяар зарласан байх ёстой $this->tbl_adv_reviews = $wpdb-> "adv_reviews"; // залгаасыг идэвхжүүлсэн үед гүйцэтгэдэг функц register_activation_hook($this->plugin_name, array(&$this, "идэвхжүүлэх")); // Plugin идэвхгүй болсон үед хийгдэх функц register_deactivation_hook($this) ->plugin_name, array (&$this, "идэвхгүй болгох")); // залгаасыг устгасан үед хийгдэх функц register_uninstall_hook($this->plugin_name, array(&$this, "устгах")); )

Объект бүтээгч дээр бид 3 "дэгээ" эсвэл "дэгээ" ашигладаг (энэ нь юу вэ?): бүртгүүлэх_идэвхжүүлэх_дэгээ, бүртгэлийг идэвхгүй болгох дэгээТэгээд бүртгүүлэх_устгах_дэгээ- эдгээр нь залгаасыг идэвхжүүлэх, идэвхгүй болгох, устгах үед гүйцэтгэдэг функцууд юм.

Одоо эдгээр функцуудыг шууд хэрэгжүүлье.

/** * Plugin идэвхжүүлэх */ function activate() ( global $wpdb; require_once(ABSPATH . "wp-admin/upgrade-functions.php"); $table = $this->tbl_adv_reviews; // Хэрэв ( бол MySQL хувилбарыг тодорхойлно уу) version_compare(mysql_get_server_info(), "4.1.0", ">=")) (хэрэв (! хоосон($wpdb->тэмдэгтийн багц)) $charset_collate = "ӨГӨМЧТЭЙ ТҮРИЙН ТОХИРОЛТ $wpdb->тэмдэгт"; хэрэв (! хоосон(! $wpdb->collate)) $charset_collate .= " COLLATE $wpdb->collate"; ) // Манай тойм хүснэгтийн бүтэц $sql_table_adv_reviews = " CREATE TABLE `".$wpdb->prefix."adv_reviews` (`ID`). INT(10) ГАРГАГҮЙ NULL AUTO_INCREMENT, `review_title` VARCHAR(255) NULL БУС DEFAULT "0", `хянах_текст` TEXT NULL БИШ, `хяналтын_огноо` TIMESTAMP NULL БУС өгөгдмөл, CURRENT_TIMESTAMP `review_reviewer `review_name)(review_review_name)2 VARCHAR(200) NULL, PRIMARY KEY (`ID`))".$charset_collate.";"; // Хэрэв ($wpdb->get_var("".$table" гэх мэт хүснэгтүүдийг харуулах."" Хүснэгт байгаа эсэхийг шалгана уу. " ) != $хүснэгт) ( dbDelta($sql_table_adv_reviews); ) ) /** * Засах залгаасын дуудлага */ функцийг идэвхгүй болгох () ( үнэнийг буцаана; ) /** * залгаасыг устгана уу */ uninstall() функцийг ( глобал $wpdb; $wpdb->query("ХЭРЭВ БАЙДАГ БОЛ ХҮСНЭГТИЙГ DROP ($wpdb->угтаа)adv_reviews"); )

Хувьсагч $wpdbмэдээллийн санд асуулга хариуцна. Чиг үүрэг dbDeltaОдоогийн хүснэгтийн бүтцийг задлан шинжилж, хүссэн хүснэгтийн бүтэцтэй харьцуулж, шаардлагатай бол хүснэгтийг нэмж эсвэл өөрчилнө.

Үүний дагуу залгаасыг идэвхжүүлсэн үед тоймыг хадгалах хүснэгтийн бүтэц бий болно. Plugin идэвхгүй болсон үед ямар ч үйлдэл гарахгүй, гэхдээ бид үүнийг устгах үед бид хүснэгтээ устгадаг. Илүү нарийвчилсан үйлдлүүдийг эх кодоос ойлгож болно.

Шинэ залгаасын үндсэн бүтэц бэлэн боллоо. Одоо бид функциональ хэсгийг бичиж эхлэх хэрэгтэй. Үүнийг хийхийн тулд бид анги үүсгэгч рүү кодын дараах мөрүүдийг нэмэх хэрэгтэй.

// Хэрэв бид админд байгаа бол. интерфэйс if (is_admin()) ( // Загвар болон скрипт нэмэх add_action("wp_print_scripts", массив(&$this, "admin_load_scripts")); add_action("wp_print_styles", массив(&$this, "admin_load_styles")); // залгаасын цэс нэмэх add_action("admin_menu", array(&$this, "admin_generate_menu")); ) else ( // Загвар болон скрипт нэмэх add_action("wp_print_scripts", array(&$this, "site_load_scripts" )) ; add_action("wp_print_styles", массив(&$this, "site_load_styles")); add_shortcode("show_reviews", массив (&$this, "site_show_reviews")); )

Кодын энэ хэсгийг нарийвчлан авч үзье. Захиргааны самбараас эхэлцгээе.
функц " админ» сайт дээр эсвэл хяналтын самбар дээр бид ямар горимд ажиллаж байгааг шалгадаг.
Дараа нь хэд хэдэн дэгээг функцэд ашигладаг:

  • wp_print_scripts- Шаардлагатай JavaScript файлуудыг нэмнэ үү
  • wp_print_styles- Шаардлагатай хэв маягийг нэмнэ үү
  • админ_цэс- Хяналтын самбарт шинэ цэс нэмнэ үү

Дэгээ бүр манай ангид хэрэгжсэн аргатай тохирч байна. шаардлагатай үйлдлүүдийг гүйцэтгэдэг.
Загвар болон скриптүүдийг холбох кодыг анхаарч үзээрэй

/** * Удирдлагын хуудсанд шаардлагатай скриптүүдийг * админ самбарт ачаална уу */ функц admin_load_scripts() ( // Скриптүүдийг бүртгүүлэх wp_register_script("advReviewsAdminJs", $this->plugin_url . "js/admin-scripts.js") ; wp_register_script( "jquery", $this->plugin_url . "js/jquery-1.4.2.min.js"); // хуудсанд скрипт нэмэх wp_enqueue_script("advReviewsAdminJs"); wp_enqueue_script("jquery"); ) /** * Админ хуудсанд шаардлагатай загваруудыг * админ самбарт ачаалж байна */ функц admin_load_styles() ( // Загваруудыг бүртгэх wp_register_style("advReviewsAdminCss", $this->plugin_url . "css/admin-style.css") ; // Загвар нэмэх wp_enqueue_style( "advReviewsAdminCss"); )

Энд дараах функцуудыг ашигладаг.

Үйлдэл бүр нь дамжуулсан "үйлдэл"-ийн параметрээс хамаарч "засварлах" - шүүмжийг засах, "илгээх" - засварласан шүүмжийг хадгалах, "устгах" - шүүмжийг устгах.

Объектийн "өгөгдлийн" шинж чанараар дамжуулан дэлгэцийн хуудсуудтай өгөгдөл солилцдог. Эдгээр хуудасны эх кодыг нийтлэлийн төгсгөлд энэ модулийн хамт архивт байршуулах болно. Энэ сэдэв аль хэдийн нэлээд том болсон тул би тэдгээрийг оруулахгүй.

Энэ нь удирдлагын самбарыг дуусгаж, хэрэглэгчдийн санал хүсэлтийг харуулах, нэмэх рүү шилжинэ.

Wordpress-д залгаасыг хэзээ залгахыг хэлэхийн тулд бид ангийнхаа үүсгэгч дээр хийгдсэн "богино код"-ыг бүртгүүлэх шаардлагатай. Энэ талаар дэлгэрэнгүй.

Нэмэх_богино код("шалгах_үзүүлэлт", массив (&$энэ, "сайт_үзүүлэлт"));

Одоо та сайтын аль ч хуудсан дээр энэ кодыг байрлуулж болох бөгөөд энэ нь бидний тодорхойлсон функцийг (хоёр дахь параметр болгон дамжуулсан) гүйцэтгэх болно. Энэ функцийн эх кодыг доор харуулав.

/** * Сайтын тоймуудын жагсаалт */ нийтийн функц site_show_reviews($atts, $content=null) ( глобал $wpdb; if (isset($_POST["action"]) && $_POST["action"] == " add-review") ( $this->add_user_review(); ) // Өгөгдлийн сангаас бүх шүүмжийг сонго $this->data["reviews"] = $wpdb->get_results("SELECT * FROM `" . $this- >tbl_adv_reviews . "`", ARRAY_A); ## Гаралтын буферийг асаах ob_start (); include_once("site_reviews.php"); ## Мэдээлэл авах $output = ob_get_contents (); ## ob_end_clean буферийг унтраах (); буцах $output ; ) хувийн функц add_user_review() ( глобал $wpdb; $inputData = массив("review_title" => strip_tags($_POST["review_title"]), "review_text" => strip_tags($_POST["review_text"]) , " review_user_name" => strip_tags($_POST["review_user_name"]), "review_user_email" => strip_tags($_POST["review_user_email"]), // Сайтад шинэ шүүмж нэмэх $wpdb->insert( $this-> tbl_adv_reviews, $inputData); )

Зарчмын хувьд энд ямар ч төвөгтэй зүйл байхгүй - өгөгдлийг сонгохын тулд SQL асуулга хийдэг боловч "үйлдэл" параметрийг дамжуулсан бол эхлээд шинэ тоймыг нэмнэ. Гэхдээ та гаралтын буферт анхаарлаа хандуулах хэрэгтэй. Оруулсан хуудасны өгөгдлийг авахын тулд энэ нь зайлшгүй шаардлагатай.

Энэ бол үнэндээ бүх зүйл. Одоо та бидэнд юу байгааг харж болно. А залгаас болон эх кодыг татаж авахчи энд болно.

Мэдээжийн хэрэг, энэ нь залгаас үүсгэх жишээ юм, гэхдээ үүнийг бага зэрэг өөрчилсөн тохиолдолд энгийн зочны өрөө болж ажиллах болно, жишээлбэл, роботууд болон хуудасны хамгаалалтыг нэмсэн. Аз жаргалтай кодчилол :)

Вэб сайтын маягт:

Plugin хяналтын самбар:

Засварыг хянах:

Та бас сонирхож магадгүй:


Код унших чадвар нь маш эмзэг сэдэв бөгөөд үүнд зохих анхаарал хандуулах хэрэгтэй. Энэ нийтлэлээс та энэ сэдвийг ахиулахад туслах 16 заль мэхийн талаар мэдэх болно.

1. Сэтгэгдэл, баримт бичиг

IDE нь хөгжүүлэгчийн ертөнцөд улам бүр түгээмэл болж байна Тэд код бичих, баримтжуулахад тохиромжтой хэрэгслээр хангадаг.

Энд жишээ байна:

Өөрийнхөө аргыг дуудах өөр нэг жишээ энд байна:

Энэ жишээнд тайлбар бичих загвар нь PHPDoc дээр суурилсан бөгөөд миний ашиглаж буй IDE нь Aptana юм.

2. Догол

Та өөрийн кодын доголын ач холбогдлыг аль хэдийн мэдэж байгаа гэж бодож байна. Ерөнхийдөө код форматлах хэд хэдэн хэв маяг байдаг.

Функц foo() ( if ($магад) ( do_it_now(); дахин(); ) else ( abort_mission(); ) finalize(); )

Функц foo() ( if ($магад) ( do_it_now(); дахин(); ) else ( abort_mission(); ) finalize(); )

Функц foo() ( if ($магад) ( do_it_now(); дахин(); ) else ( abort_mission(); ) finalize(); )

Би хувьдаа №2 загварын дугаарыг ихэвчлэн ашигладаг ч заримдаа №1-д ордог. Гэхдээ энэ бүхэн мэдээжийн хэрэг амтаас хамаарна. Хүн бүрт тохирсон "хамгийн сайн" загвар байдаггүй байх. Эдгээр дүрмийг юуны өмнө багаар ажилладаг эсвэл нээлттэй эхийн төсөл бичихэд оролцдог хүмүүс дагаж мөрдөх шаардлагатай.

Мөн зарим шинж чанарыг хослуулсан загварууд байдаг. Жишээлбэл, "(" буржгар хаалт нь нөхцөлт хэллэгт ижил мөрөнд хэвээр байх боловч функцээр ороосон PEAR кодчилолын стандартууд.

PEAR загвар:

Функц foo() ( // шинэ мөрөнд if ($магадгүй) ( // ижил мөрөнд do_it_now(); again(); ) else ( abort_mission(); ) finalize(); )

Мөн энэ хэв маяг нь табын оронд 4 зай ашигладаг болохыг анхаарна уу.

Та янз бүрийн хэв маягийн талаар илүү ихийг мэдэж болно.

3. Шаардлагагүй сэтгэгдэл бичихээс зайлсхий

Тийм ээ, кодын тайлбар сайн байна; гэхдээ үүнийг хэтрүүлэх шаардлагагүй. Энд жишээ байна:

// улсын код авах $country_code = get_country_code($_SERVER["REMOTE_ADDR"]); // хэрэв тухайн улс АНУ бол ($улсын_код == "АНУ") ( // echo form_input_state(); ) хэлбэрийг харуулах

Хэрэв кодын ажил тодорхой бол та шаардлагагүй сэтгэгдэл бичих ёсгүй.

Хэрэв бэлэн болоогүй бол та тэдгээрийг бага зэрэг богиносгож болно:

// хэрэв тухайн улс нь US $country_code = get_country_code($_SERVER["REMOTE_ADDR"]) бол маягтыг харуулах; хэрэв ($улсын_код == "АНУ") ( echo form_input_state(); )

4. Кодын бүлэглэл

Ихэнх тохиолдолд зарим ажил нь хэд хэдэн мөр код бичихийг шаарддаг. Тиймээс ийм ажлуудыг орон зайгаар тусгаарласан тусдаа блок болгон нэгтгэх нь хамгийн сайн арга юм.

Энд энгийн жишээ байна:

// форумын жагсаалтыг авах $forums = array(); $r = mysql_query("Форумуудаас сонгох ID, нэр, тайлбар"); while ($d = mysql_fetch_assoc($r)) ( $forums = $d; ) // ачаалах загварыг ачаалах_template("толгой"); load_template("форумын_жагсаалт",$форумууд); load_template("хөл хэсэг");

Хэрэв та блок бүрийн эхнээс өмнө тайлбар нэмбэл таны кодын унших чадварыг улам сайжруулах болно.

5. Нэрлэх схем

Заримдаа PHP хэл дээр ч гэсэн функцүүдийн нэршилд үл нийцэх байдал ажиглагддаг. Мөн энд олон жишээ байна:

  • strpos() vs str_split()
  • imagetypes() vs image_type_to_extension()

Хэд хэдэн алдартай загварууд байдаг:

  • camelCase: Шинэ үг бүрийн эхний үсгийг томоор бичнэ.
  • доогуур зураас: Үгсийн хоорондох доогуур зураас: mysql_real_escape_string().

Хэрэв та эдгээр техникийг хольвол эрт орой хэзээ нэгэн цагт та эвгүй байдалд орж болно. Хэрэв та эдгээр аргуудын аль нэгийг ашигладаг төсөл дээр ажиллаж байгаа бол үүнийг дагаж мөрдөх хэрэгтэй. Энэ нь програмчлалын хэлнээс хамааралтай хэвээр байж магадгүй юм. Жишээлбэл, ихэнх Java хөгжүүлэгчид camelCase ашигладаг бол PHP хөгжүүлэгчид доогуур зураасыг илүүд үздэг.

Гэхдээ энд ч эрлийзгүй байсангүй. Зарим хөгжүүлэгчид анги, аргуудыг (гадна анги) нэрлэхдээ доогуур зураасыг ашигладаг бол бусад тохиолдолд camelCase ашигладаг:

Ангилал Foo_Bar ( нийтийн функц someDummyMethod() ( ) ) функц процедурын_функцийн_нэр() ( )

Үүнээс илүү загвар байхгүй гэдгийг дахин хэлье. Та зүгээр л ямар нэгэн зүйлд тууштай байх хэрэгтэй.

6. DRY зарчим

ХУУРАЙ (Өөрийгөө бүү давт) ҮХХ гэж бас нэрлэдэг: Давхардах нь хорон муу юм.

Вэб програм эсвэл өөр ямар нэгэн системийн гол ажил бол давтагдах ажлуудыг автоматжуулах явдал юм. Энэ зарчмыг үргэлж, хаа сайгүй дагаж мөрдөх ёстой, ялангуяа та хөгжүүлэгч бол. Нэг кодыг дахин дахин давтаж болохгүй.

Жишээлбэл, ихэнх вэб програмууд нь нэг буюу хэд хэдэн хуудаснаас бүрддэг. Эдгээр хуудсууд нь ижил элементүүдийг агуулсан байх нь ойлгомжтой. Толгой, хөл - хамгийн гайхалтай жишээ. Хэчнээн олон хүн эдгээр элементүүдийг хуудас бүр дээр давтаж байгааг та гайхах болно.

$this->load->view("толгой/толгой багтана"); $this->load->view($main_content); $this->load->view("includes/footer");

7. Гүн үүрлэхээс зайлсхий

Хэрэв та гүн үүрлэсэн бол кодын унших чадвар эрс багасна.

функц do_stuff() ( // ... if (write_write($folder)) ( if ($fp = fopen($file_path,"w")) ( if ($stuff = get_some_stuff()) ( if (fwrite($) fp,$stuff)) ( // ... ) else ( худал буцах; ) ) else ( худал буцах; ) ) else ( худал буцах; ) ) else ( худал буцах; ) )

Нөхцөл байдлыг засахын тулд та өөрийн код хэрхэн ажилладаг талаар эргэн харж, оновчтой болгох хэрэгтэй.

функц do_stuff() ( // ... if (!is_writable($folder)) ( return false; ) if (!$fp = fopen($file_path,"w")) ( return false; ) if (!$stuff) = get_some_stuff()) ( худал буцаана; ) if (fwrite($fp,$stuff)) ( // ... ) else ( худал буцаана; ) )

8. Шугамын уртын хязгаар

Текстийг баганад хуваах үед унших үйл явц илүү тааламжтай болдог гэдгийг хүн бүр мэддэг. Манай сонинууд ингэж харагдах болсон гол шалтгаан нь энэ.

Үүнтэй төстэй техникийг манай кодонд хэрэглэж болно:

// муу $my_email->set_from(" [имэйлээр хамгаалагдсан]")->нэмэх_(" [имэйлээр хамгаалагдсан]")->set_subject("Гинжлэгдсэн аргууд")->set_body("Зарим урт мессеж")->send(); // за $my_email ->set_from(" [имэйлээр хамгаалагдсан]") ->нэмэх_(" [имэйлээр хамгаалагдсан]") ->set_subject("Гинжлэгдсэн аргууд") ->set_body("Зарим урт мессеж") ->send(); // bad $query = "Хэрэглэгчдээс id, хэрэглэгчийн нэр, нэр, овог нэр, статус СОНГОХ Хэрэглэгчийн нийтлэлийг АШИГЛАН ҮЛДҮҮЛЭХ. (users.id, user_posts.user_id) WHERE post_id = "123""; // bad $query = "Хэрэглэгчдээс ID, хэрэглэгчийн нэр, нэр, овог нэр, статусыг СОНГООД user_posts-д НЭГДҮҮЛЭЭРЭЙ (users.id, user_posts.user_id) ХААНА. post_id = "123"";

Ихэнх хөгжүүлэгчид 80 ба 120 тэмдэгтийн хязгаарыг баримталдаг.

9. Файл, хавтас зохион байгуулах

Техникийн хувьд та бүх програмын кодыг нэг файлд хийж болно :) Гэхдээ ямар нэг зүйлийг өөрчлөх, нэмэх шаардлагатай үед та юу хийх вэ.

Би файл хавсаргасан анхны төслүүдээ санаж байна. Гэтэл манай байгууллага их доголж байсан. Би db.php болон functions.php гэсэн хэд хэдэн файл байршуулсан "inc" хавтас үүсгэсэн. Өргөдөл бичих явцдаа энэ хавтас нь дүүрч, дүүрээд эцэст нь хаана юу байгааг ойлгоход бэрх болсон.

Энэ асуудлыг шийдэхийн тулд янз бүрийн төрлийн хүрээ ашиглах, эсвэл ядаж тэдний бүтцэд наалдах нь дээр. CodeIgniter дээр төсөл иймэрхүү харагдаж байна:

10. Хувьсагчийн нэрс

Ерөнхийдөө хувьсагчийн нэр нь бүрэн утгатай байх ёстой - энэ нь хамгийн тохиромжтой. Түр зуурын хувьсагчдад үл хамаарах зүйл хийж болно.

Хэд хэдэн жишээг харцгаая:

// $i for гогцоонууд ($i = 0; $i< 100; $i++) { // $j для вложенных циклов for ($j = 0; $j < 100; $j++) { } } // $ret для возвращаемых переменных function foo() { $ret["bar"] = get_bar(); $ret["stuff"] = get_stuff(); return $ret; } // $k и $v для foreach foreach ($some_array as $k =>$v) ( ) // mysql-д $q, $r ба $d $q = "СОНГОХ * хүснэгтээс"; $r = mysql_query($q); while ($d = mysql_fetch_assocr($r)) ( ) // Файлуудтай ажиллахад $fp $fp = fopen("file.txt", "w");

11 - SQL хэл дээрх түлхүүр үгсийг том үсгээр бичнэ

Ихэнх вэб програмууд мэдээллийн сантай харьцдаг. Хэрэв та өөрөө SQL асуулга бичдэг бол тэдгээрийг мөн зохих ёсоор форматлах хэрэгтэй ... Энд төвөгтэй зүйл байхгүй. Түлхүүр үгээ том үсгээр бичнэ үү.

12. Код болон өгөгдлийг тусад нь

Энэ бол танд илүү цэвэр програм бичихэд туслах өөр нэг зарчим юм. Энэ нь та өгөгдлийг нэг газар (загвар гэж хэлье) бэлтгэж, өөр газар тэдэнтэй харьцдагтай холбоотой юм.

PHP анх эхэлж байх үед энэ нь загварчлалын системтэй адил байсан. Энэ хэл дээрх төслүүд нь холимог HTML болон PHP код агуулдаг. Одоо бүх зүйл өөрчлөгдсөн бөгөөд хүн бүр програм бичих шинэ түвшинд шилжих ёстой.

Та өөртөө зориулж ямар нэгэн онцгой хэв маягийг боловсруулж болно, эсвэл өнөөг хүртэл хамгийн алдартай хэрэгслийг ашиглаж болно.

Алдартай PHP Frameworks:

Загварын системүүд:

Алдартай CMS

13. Загварт зориулсан тусгай синтакс

Хэрэв та загварчлалын системийг ашиглахыг хүсэхгүй байгаа бол PHP кодыг HTML-д оруулах өөрийн хэв маягийг хөгжүүлэх хэрэгтэй болно.

Мөн энд жишээ байна:

Сайн уу, хэрэглэгчийн нэр; ?>
|

Миний мессежийн самбар

гарчиг; ?>

Форумууд $forum): ?>

id, $forum->гарчиг) ?> (threads->count(); ?>утас)

тодорхойлолт; ?>

Энэ техник нь нэмэлт хаалтаас зайлсхийх боломжийг танд олгоно. Мөн ийм код нь HTML контекстэд сайн тохирдог.

14. Процедурын болон объект хандалтат хандлага

Объект хандалтат програмчлал нь танд илүү тодорхой бүтэцтэй байхад тусална, гэхдээ энэ нь програм бичих процедурын зарчмаас хазайх ёстой гэсэн үг биш юм.

Объектууд нь өгөгдлийг илэрхийлэхэд тохиромжтой. Жишээ:

Class User ( public $username; public $first_name; public $ last_name; public $email; public function __construct() ( // ... ) public function create() ( // ... ) public function save() ( / / ... ) нийтийн функц устгах() ( // ... ) )

Процедурын аргууд нь өөрийн гэсэн онцлог шинж чанартай байдаг.

Функц томоор бичих($string) ( $ret = strtoupper($string); $ret .= strtolower(substr($string,1)); буцаах $ret; )

15. Нээлттэй эхийн кодыг уншина уу

Ер нь Нээлттэй эхийн төслүүдийг олон тооны хөгжүүлэгчид бичдэг. Энэ үүднээс авч үзвэл ижил төстэй төслүүдийн бичсэн кодыг судлах нь танд туршлага хуримтлуулахад тусална. Тиймээс үүнд цаг заваа үрэх хэрэггүй.

16. Рефакторинг

Refactoring гэдэг нь функцийг алдалгүйгээр кодыг өөрчлөх явдал юм. Унших чадварыг сайжруулахын тулд үүнийг бас ашиглаж болно. Алдаа засах, функц нэмэх зай байхгүй. Та зүгээр л кодынхоо бүтцийг бага зэрэг өөрчил.

Энэ нийтлэл танд хэрэг болсон гэж найдаж байна! Надад ямар нэг зүйл дутагдаж байна уу? Туршлагаасаа хуваалцаарай!

WordPress.com нь блогт аюултай байж болзошгүй кодыг ашиглахыг зөвшөөрдөггүй, гэхдээ үзэхийн тулд эх кодыг нийтлэх боломжтой. Бид эх кодын форматыг хадгалах, тэр ч байтугай зарим хэлний синтакс онцлох тэмдэглэгээг бий болгосон. Жишээ:

#товчлуур (фонтын жин: тод; хүрээ: 2px хатуу #fff; )

Дээрх хэсэгтэй төстэй үр дүнд хүрэхийн тулд кодоо дараах шошгонд ороорой:

Таны код

"Хэл" параметр нь хэл, синтаксийг тодруулах дүрмийг тодорхойлдог. Дараах утгуудыг дэмжинэ.

  • actionscript3
  • хүйтэн нэгдэл
  • csharp
  • дельфи
  • эрланг
  • fsharp
  • Гоёмсог
  • javascript
  • javafx
  • matlab
  • powershell
  • питон
  • скала

Хэрэв "хэл" параметрийн утгыг тохируулаагүй бол "текст" гэсэн утгыг ашиглана (синтакс онцлохгүйгээр).
"Код" шошгуудын хоорондох кодыг харуулахын тулд автоматаар кодлох тул та HTML элементүүд болон бусад зүйлсийн талаар санаа зовох хэрэггүй болно.

Тохиргооны сонголтууд

Шошго нь мөн харагдах байдал, мэдрэмжийг өөрчлөхөд ашиглаж болох олон тохиргооны сонголтыг дэмждэг. Тэдний хэрэглээ нь бүрэн сонголттой байдаг.

  • autolinks (үнэн/худал) - Код дахь URL бүрийг гипер холбоос хэлбэрээр үзүүлэв. Өгөгдмөл утга: үнэн.
  • collapse (үнэн/худал) - Хэрэв үнэн гэж тохируулсан бол кодын хэсэг хуудас ачаалагдах үед нурах болно. Үүнийг өргөжүүлэхийн тулд та үүн дээр дарах хэрэгтэй. Энэ нь том кодын хэсгүүдэд хэрэгтэй. Өгөгдмөл утга нь худал байна.
  • эхний мөр (тоо) - Мөрийн дугаарлалт эхлэх тоог заана. Өгөгдмөл утга: 1.
  • суваг (үнэн/худал) - Хэрэв худал гэж тохируулсан бол мөрийн дугаар нуугдах болно. Өгөгдмөл утга: үнэн.
  • тодруулах (таслалаар тусгаарлагдсан тоо) - Онцлох мөрийн дугаарууд, жишээ нь "4,7,19".
  • hmtlscript (true/false) - Хэрэв үнэн гэж тохируулсан бол HTML/XML кодыг тодруулна. Энэ нь PHP гэх мэт холимог кодыг HTML дотор нийтлэхэд хэрэгтэй. Зөвхөн зарим хэл дээр ажилладаг. Өгөгдмөл утга: худал.
  • гэрэл (үнэн/худал) - Хэрэв үнэн гэж тохируулсан бол мөрийн дугаар болон хэрэгслийн мөр нуугдах болно. Энэ нь нэг эсвэл хоёр мөрийн кодын хэсгийг нийтлэх үед хэрэг болно. Өгөгдмөл утга: худал.
  • padlinenumbers (true/false/integer) - Мөрийн дугаарыг тэгээр дүүргэхийг хянах боломжийг танд олгоно. Үнэн утга нь автоматаар гүйцээхийг, худал утга нь дуусгахыг идэвхгүй болгож, тоо нь мөрийн дугаарт тогтсон тэмдэгтийн тоог тохируулдаг.
  • toolbar (true/false) - Хэрэв худал гэж тохируулсан бол код дээр гүйлгэх үед товчлуур бүхий хэрэгслийн мөр гарч ирэхгүй. Өгөгдмөл утга: үнэн.
  • wraplines (true/false) - Хэрэв худал гэж тохируулсан бол мөрийг боохыг идэвхгүй болгоно. Хэрэв урт мөрүүд байвал хэвтээ гүйлгэх самбар гарч ирнэ.
  • гарчиг (мөр) – кодын гарчиг. Нурах сонголттой хослуулан хэрэглэхэд ашигтай байж болно.

Дээрх параметрүүдийг ашиглах жишээ:

Энэ мөрийг онцолсонгүй. Энэ мөрийг онцлон тэмдэглэв. Энэ мөрийг онцлон тэмдэглэв. Энэ мөрийг онцолсонгүй. Энэ бол мөрийн дугаарыг 4 хүртэлх тэмдэгтээр тэгээр дүүргэсэн богино кодын хэсэг юм. //Энэ жишээнд мөрийг боохыг идэвхгүй болгосон. Текстийг бүрэн эхээр нь уншихын тулд та гүйлгэх мөрийг ашиглах хэрэгтэй болно. Нэмж дурдахад, энэ жишээ нь мөрийн дугаарыг идэвхгүй болгож, хэрэгслийн мөрийг нуудаг.

Мөн энэ бол илүү том кодын хэсэг юм. Энд РНР сонгогдсон ба 12 дугаар мөрийг тодруулсан байна.

WordPress.com кодын жишээ

WordPress.com кодын жишээ

Энэ мөрийг онцлон тэмдэглэв. Маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш-маш урт шугам.
Энэ бол ухаалаг табуудын жишээ юм.
wordpress.com

Баярлалаа
Энэ функцийг хэрэгжүүлэхийн тулд SyntaxHighlighter төслийг (зохиогч Алекс Горбатчев) ашигладаг. Хэрэглэгчид тохирохыг тохируулах боломжтой

Сайн байцгаана уу найзуудаа. Өнөөдөр бид ямар ч PHP кодыг WordPress виджет, нийтлэл, хуудсан дээр хэрхэн ажиллуулах талаар олж мэдэх болно. Анхдагч байдлаар, ийм функц энэ CMS-д байхгүй бөгөөд хэрэглэгчийн найдаж болох хамгийн дээд хэмжээ нь HTML кодыг нэвтрүүлэх явдал юм.

Яагаад PHP код анхдагчаар ажиллахгүй байна вэ?

Хөгжүүлэгчид яагаад ийм алдартай, тохиромжтой хөдөлгүүрийг PHP кодыг автоматаар гүйцэтгэхэд хэрэгтэй функцээр шагнаагүй юм шиг санагдаж байна. Эхэндээ би энэ тухай бодож байсан ч ийм бодлого нь аюулгүй байдлын үүднээс хэрэгждэг гэсэн дүгнэлтэд хүрсэн, учир нь виджетүүд эсвэл доторх бичлэгүүдэд PHP-ийг зохисгүй ашиглах нь нөхөж баршгүй үр дагаварт хүргэж болзошгүй - мэдээллийн санд ямар нэг зүйл эвдрэх болно. сайт бүхэлдээ шуугина.

Тиймээс PHP-тэй ажиллах нь програмистууд эсвэл энэ талаар бага эсвэл бага зэрэг дэвшилтэт хүмүүсийн өршөөл юм - аливаа скриптийг файлууд дээр шууд гүйцэтгэдэг.

Нийтийн сайтуудын хувьд (олон зохиогчтой) PHP-г нийтлэлийн үндсэн хэсэгт ажиллуулах нь санаатайгаар хорлон сүйтгэх эрсдэлийг нэмэгдүүлдэг, учир нь аливаа зохиогч нийтлэл засварлах цонхоор сайт руу бүрэн нэвтрэх боломжтой.

Аюулын зэрэглэлийн дагуу би энэ бүх нөхцөл байдлыг 3 түвшинд хуваана.

  1. Хөгжүүлэгчдийн хүссэнээр бүх зүйлийг орхих нь хэцүү байдаг - сайтыг аюулгүй, санамсаргүй эсвэл санаатайгаар гэмтээх нь хэцүү байдаг.
  2. Виджетүүдэд PHP-г ажиллуулахыг зөвшөөрөх - дунд зэргийн хүндийн түвшин, зөвхөн сайтын админ хандах эрхтэй.
  3. Нийтлэл, хуудсуудыг (зохицуулагчид, зохиогчид) засварлах эрхтэй хүн бүр сайтыг удирдах боломжтой тул кодыг хаа сайгүй ашиглах нь аюултай.

Widgets дахь PHP нь юунд зориулагдсан вэ?

Энэ програмчлалын хэлийг ашиглан бүх зүйлийг хэрэгжүүлэх боломжтой тул асуулт нь хувь хүн юм. Би хувьдаа энэ нийтлэлийг бичихийг хүссэн захиалагчийн захиалгаар миний вэбсайтыг одоо барьж байгаа. Үүн дээр "Мэдээ" гэсэн гарчигтай мэдээний жагсаалтыг тусдаа виджет дээр хажуугийн самбарт харуулах шаардлагатай байв. Стандарт WordPress виджетүүдэд ийм сонголт байдаггүй.

Асуулт нь тохирох чадвартай залгаасыг олох эсвэл энгийн PHP код ашиглах хоёрын хооронд байв. Ийм даалгаврын скрипт нь үнэхээр жижиг бөгөөд би сайтыг өөр хаана ч ашиглахгүй нэмэлт залгаасаар ачаалахыг хүсээгүй.

Ерөнхийдөө PHP-г ажиллуулахыг зөвшөөрснөөр бид 2 асуудлыг шийдэж чадна:

  • Сайтын залгаасуудын нэг хэсгийг скриптээр сольж, байршуулах ачааллыг ийм байдлаар багасгах;
  • Одоогоор залгаасууд байхгүй байгаа функцүүдийг хэрэгжүүлээрэй.

Эхний шатанд би виджетүүдийн талаар ярих болно, дараа нь тусдаа блок дээр контент дахь кодыг харуулах талаар ярих болно.

Виджет дэх PHP-д зориулсан залгаасууд

Plugins-ийн давуу тал: WordPress-ийн сэдвийг өөрчлөх үед загварт нэмсэн функцүүдийн ажил тасалддаггүй, вэбмастерын оролцоогүйгээр бүх зүйл үргэлжлүүлэн ажилладаг. Загварыг өөрчлөх үед загварт нэмсэн дэгээг гараар шинэ загвар руу шилжүүлэх шаардлагатай болно.

Дээрх жишээн дээр би үйлчлүүлэгчид зориулж вэбсайт хийж байгаа бөгөөд хэрэв тэр өөрөө дизайныг өөрчлөхийг хүсвэл functions.php файлууд болон бусад файлуудаар хийсэн тохиргоонууд алга болох тул би үүнийг аль болох хялбар болгож байна. түүнийг залгаасууд дээр тулгуурлан сайтыг удирдах (ялангуяа траффик нь бага бөгөөд ачаалал их биш байх болно).

PHP кодын виджет

Би энэ залгаасыг удаан хугацааны турш ажилдаа ашиглаж байгаа бөгөөд энэ нь ердийн тексттэй төстэй виджетүүдийн жагсаалтад зөвхөн текст болон HTML-ээс гадна PHP боловсруулах чадвартай виджетийг нэмдэг.

PHP Code Widget нь WordPress-ийн албан ёсны санд байдаг бөгөөд нэрээр нь олоход хялбар байдаг. Ийм залгаасуудыг хэрхэн суулгах талаар.

Тохиргоо шаардлагагүй, виджет нь залгаасыг суулгаж, идэвхжүүлсний дараа шууд жагсаалтад гарч ирнэ. "PHP код"-ыг хажуу тал руу чирээд тэнд дурын скрипт нэмнэ үү.

WordPress виджет дээрх PHP залгаасгүй

Энэ тохиолдолд бидэнд солих дэгээ хэрэгтэй стандарт функц, энэ нь PHP-г боловсруулах боломжийг олгодог текст WordPress виджетийн ажлыг хангадаг.

Энэ дэгээ нь одоогийн сэдвийн functions.php файлд нэмэгдсэн байна (хаалтын хаалтны өмнөх хамгийн төгсгөлд?>). Үүний дараа залгаасын нэгэн адил шинэ виджетийн сонголтууд гарч ирэхгүй, PHP кодууд стандарт текст дээр ажиллаж эхэлдэг.

Дууссан код:

Нэмэх_шүүлтүүр("виджетийн_текст"," text_html_php_виджет ",100); функц text_html_php_widget($text) ( if(strpos($text,")".$текст); $текст = ob_get_contents(); ob_end_clean(); ) $текстийг буцаана; )

Эхний мөр нь дуудлага бүр дээр стандарт текст виджетийн функцийг шинэ, text_html_php_widget-ээр солих шүүлтүүр бөгөөд дараа нь хамгийн сүүлийн үеийн функцын тайлбарыг дагана.

Яагаад WordPress нийтлэл, нийтлэл дэх PHP код вэ?

Нийтлэлийн доторх PHP код нь виджетүүдээс хамаагүй бага шаарддаг тул нийтлэлийн эхний хэсэгт би хажуугийн самбарыг тусад нь авч үзсэн бөгөөд ингэснээр та аюултай функцүүдийг шаардлагагүйгээр оруулахаас зайлсхийх боломжтой.

Гэхдээ нийтлэлүүдэд ч гэсэн скрипт ашиглах шаардлагатай байдаг. Хамгийн түгээмэл жишээ бол залгаасгүй сайтын газрын зураг юм. Үнэн бол та газрын зургийн өөр техникийг ашиглаж болно - хуудасны тусгай загвар хийх (энэ бол тусдаа сэдэв).

Надад нэг удаа дараах зорилгоор PHP гаралт хэрэгтэй байсан:

Би видео сайт хийсэн. Цувралын ангиудыг тоглуулах жагсаалтад улирал тус бүрээр нь харуулсан бөгөөд тухайн улирлын тоглуулах жагсаалт бүрийн доор ангиудын жагсаалтыг хуудасныхаа линкээр харуулах шаардлагатай байсан. Энэ нь сайтын газрын зураг шиг харагдаж байна, зөвхөн илүү төвөгтэй - дүгнэлтийг бие даасан гарчгийн жагсаалтаар хийх шаардлагатай байв. Холбоос бүрийг HTML кодоор гараар бичих боломжтой байсан ч хэдэн зуун цуврал байдаг бөгөөд процедур нь уйтгартай байдаг. Түүнээс гадна, шинэ цуврал гарч ирэхэд линкийг гараар нэмэх шаардлагатай болно - тохиромжгүй. Тиймээс би PHP функцуудыг хэрэгжүүлэхийн тулд ашиглахаар шийдсэн.

Exec-PHP контент дээр PHP-г ажиллуулах залгаас

Хэдийгээр энэ залгаасыг 7 жилийн турш шинэчлээгүй ч маш сайн ажиллаж байна. Би үүнийг тодорхой шалтгааны улмаас сонгосон - энэ нь өрсөлдөгчид шиг ямар ч богино код ашигладаггүй, гэхдээ танд нийтлэл оруулах боломжийг олгодог. wordpress кодхамгийн цэвэр хэлбэрээр нь, from .

Exec-PHP залгаас нь репозиторт байгаа бөгөөд хөдөлгүүрийн админ самбар дээрх цэсээр суулгагддаг.

Тохиргоонуудаас зөвхөн нэг нь байдаг - текстийн виджет дээр код ажиллуулах зөвшөөрөл / хориглолт, нийтлэл болон хуудсан дээрх ажлыг идэвхгүй болгох боломжгүй, хэрэв та үүнийг устгах шаардлагатай бол залгаасыг идэвхгүй болго.

Нийтлэлд PHP код оруулахын тулд үүнийг HTML горимд шилжүүлэх шаардлагатай ("Текст" таб). Харааны горим нь кодыг эвдэх магадлалтай.

PHP кодыг WordPress нийтлэлд залгаасгүйгээр ажиллуулах

Виджетүүдтэй адилтгах замаар бид залгаасыг гүйцэтгэх боломжийг олгодог тусгай функцээр сольж болно PHP скриптүүдагуулгын хувьд. Харамсалтай нь, залгаасуудын шошгонд хариу үйлдэл үзүүлэхтэй адил код автоматаар ажиллах сонголтыг би олж чадсангүй. Богино код шаардлагатай. Миний PHP-ийн мэдлэг өөрөө бичихэд хангалтгүй байсан хүссэн функц, sim-д зориулж би үүнийг байгаагаар нь авчирдаг. Богино кодтой ажиллах нь ажлыг хүндрүүлдэг мэдэгдэхүйц сул талтай бөгөөд би үүнийг доор хэлэлцэх болно.

Доорх функцтэй хэрхэн ажиллах талаар

  1. Үүнийг тухайн сэдвийн functions.php файлд буулгана уу;
  2. Өгүүллийн зөв газарт бид констракшн - гүйцэтгэх кодыг оруулаагүй болно

Чиг үүрэг:

/* WordPress нийтлэл, хуудсуудад php-г эхлүүлэх: код */ функц start_php($матч)( eval("ob_start();".$матч."$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); буцаах $контент; ) add_filter("the_content", "inline_php");

Алдаа

Хэрэв оруулсан PHP код дотор HTML оруулга эсвэл текст байгаа бол энэ нь ажиллахгүй. Аливаа текст эсвэл шошгыг echo командыг ашиглан оруулах шаардлагатай бөгөөд энэ нь үргэлж тохиромжтой байдаггүй. Өөрөөр хэлбэл, код нь цэвэр PHP-shny 100 зөв форматтай байх ёстой.

Зөв

Цуурай "Энэ ажиллах болно";

Буруу

Цуурай "Энэ мөр зөв"; Энэ бүтэхгүй

Exec-PHP залгаас дээр ийм асуудал байхгүй - текст болон HTML хоёулаа ажиллах болно, гэхдээ PHP кодын бүх элементүүдийг зохих шошгон дээр байрлуулсан байх ёстой.

Олон вэбмастеруудын хувьд энэ нийтлэлд тайлбарласан сэдэв нь бүтээлч байдлын хязгааргүй боломжийг нээж өгдөг - та өмнө нь хийж чадаагүй зүйлээ хэрэгжүүлэхээс гадна олон нэмэлт өргөтгөлүүдээс салж, тэдгээрийг өөр өөр шүүлтүүр, функц, дэгээгээр сольж болно.



Ачааж байна...
Топ