{"id":229880,"date":"2022-11-26T20:09:00","date_gmt":"2022-11-26T17:09:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229880"},"modified":"2022-11-09T19:07:11","modified_gmt":"2022-11-09T16:07:11","slug":"kuidas-eemaldada-puesilinkidest-erimaerke","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/kuidas-eemaldada-puesilinkidest-erimaerke\/","title":{"rendered":"Kuidas eemaldada p\u00fcsilinkidest erim\u00e4rke"},"content":{"rendered":"\n<p>Kui t\u00f6\u00f6tate WordPressi ja kolmanda osapoole API-dega, on alati v\u00f5imalus, et puutute kokku probleemidega, mille korral kolmanda osapoole API ei ole valmis k\u00e4sitlema teatud p\u00fcsilingis olevaid m\u00e4rke.<\/p>\n<p>Olenevalt p\u00fcsilingi seadetest v\u00f5ib see probleem olla v\u00f5i mitte. N\u00e4iteks v\u00f5ite iga postituse jaoks m\u00e4\u00e4rata oma p\u00fcsilingid v\u00e4\u00e4rtusele <strong>?p=123 .<\/strong> Sellisel juhul pole see eriti probleem.<\/p>\n<p>Kuid kui kasutate &quot;ilusaid p\u00fcsilinke&quot; ja teie p\u00fcsilink sisaldab midagi kaubam\u00e4rgi s\u00fcmbolit v\u00f5i autori\u00f5iguse s\u00fcmbolit, v\u00f5ib see p\u00f5hjustada probleeme, kui suhtlete kolmanda osapoole API-ga.<\/p>\n<p>Esiteks, kui kasutate p\u00e4ris p\u00fcsivaid linke, luuakse need \u00fcldiselt postituse pealkirjast. Nii et kui kasutate midagi sellist, nagu All About The Acme Machine\u2122, loob see p\u00fcsiva lingi, mis sisaldab midagi sellist.<\/p>\n<p>N\u00e4iteks v\u00f5ite lasta WordPressil automaatselt genereerida midagi sellist: <a href=\"https:\/\/acme.com\/all-about-the-acme%C2%AE-machine\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/acme.com\/all-about-the-acme\u00ae-machine\/<\/a><\/p>\n<p>Ja kui on aeg saata see teave kolmanda osapoole API-le (v\u00f5i proovida seda t\u00f6\u00f6delda, kasutades midagi, mis pole selliste m\u00e4rkide jaoks ette valmistatud), siis tekib probleeme.<\/p>\n<p>\u00d5nneks pakub WordPress konksu, mis v\u00f5imaldab meil t\u00f6\u00f6delda p\u00fcsilinke enne, kui need andmebaasi j\u00e4rjestatakse. Nimelt on see <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Filter_Reference\/wp_insert_post_data\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_insert_post_data<\/a> konks.<\/p>\n<p>Ja sel juhul t\u00f6\u00f6tab see j\u00e4rgmiselt:<\/p>\n<ol>\n<li>Seadistage konks tulistama serialiseerimisprotsessi hilises etapis,<\/li>\n<li>Otsige tegelasi, kes v\u00f5ivad olla problemaatilised,<\/li>\n<li>Asenda need t\u00fchja stringiga,<\/li>\n<li>Tagastage v\u00e4rskendatud teave WordPressile serialiseerimiseks.<\/li>\n<\/ol>\n<p><strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/035b213bd632d2ab9fc4a79acffa1342#file-00-processpermalink-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Siin on n\u00e4ide<\/a><\/strong>, mis eemaldab mitmesugused s\u00fcmbolid, nagu autori\u00f5iguse s\u00fcmbolid, kaubam\u00e4rgis\u00fcmbolid, registreerimiss\u00fcmbolid ja muud nende variandid nii kodeeritud vormingus kui ka kodeeritud ekvivalentides:<\/p>\n<pre><code>&lt;?php\nadd_action('wp_insert_post_data', __NAMESPACE__. 'processPermalink');\n\/**\n * Processes the permalink so we can remove any characters that may cause a problem when communicating\n * with the API.\n *\n * @param  array $data The array of information about the post.\n * @return array $data The data without the malformed information in the post name for the URL.\n *\/\npublic function processPermalink($data)\n{\n    if (!in_array($data['post_status'], array('draft', 'pending', 'auto-draft'))) {\n        $data['post_name'] =\n            preg_replace(\n                '\/(%ef%b8%8f|\u2122|\u00ae|\u00a9|\u2122|\u00ae|\u00a9|\u2122|\u00ae|\u00a9)\/',\n                '',\n                $data['post_name']\n            );\n    }\n    return $data;\n}\n<\/code><\/pre>\n<p>Pange t\u00e4hele, et funktsioon aktsepteerib postituse andmeid argumendina, kontrollib, et te ei t\u00f6\u00f6taks mustandi, ooteloleva artikli v\u00f5i automaatse mustandiga, ja eemaldab seej\u00e4rel postituse nime sisu<\/p>\n<p>See v\u00f5ib olla n\u00fcansirikas probleem. See t\u00e4hendab, et v\u00f5ib-olla ei kohta te seda oma arendustegevuses. Kui te aga seda teete, pakub see lahendust, mis mitte ainult ei v\u00f5imalda teil teatud t\u00e4hem\u00e4rke URL-ist eemaldada, vaid v\u00f5imaldab teil seda teha ka skaleeritavas vormingus.<\/p>\n<p>Kui teie vajadused muutuvad, saate lihtsalt v\u00e4rskendada k\u00f5net <strong><a href=\"https:\/\/php.net\/manual\/en\/function.preg-replace.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">preg_replace<\/a><\/strong> t\u00e4hem\u00e4rkidega, mille peate oma URL-ist eemaldama.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lahendus probleemsete m\u00e4rkide eemaldamiseks WordPressi p\u00fcsilinkidest ja skaleeritaval viisil.<\/p>\n","protected":false},"author":1,"featured_media":164255,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[833,894,916,842,863],"tags":[1165],"class_list":["post-229880","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-juhend-algajatele","category-kood","category-muud","category-opetused","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/229880","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=229880"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/229880\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/164255"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=229880"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=229880"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=229880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}