{"id":232921,"date":"2023-01-31T13:36:00","date_gmt":"2023-01-31T10:36:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232921"},"modified":"2023-01-31T13:44:47","modified_gmt":"2023-01-31T10:44:47","slug":"jak-automatycznie-wygasac-linki-dofollow-funkcja-zarzadzania-linkami-seo-w-php","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/jak-automatycznie-wygasac-linki-dofollow-funkcja-zarzadzania-linkami-seo-w-php\/","title":{"rendered":"Jak automatycznie wygasa\u0107 linki DoFollow (funkcja zarz\u0105dzania linkami SEO w PHP)"},"content":{"rendered":"\n<p>Jak automatycznie wygasa\u0107 linki DoFollow (funkcja zarz\u0105dzania linkami SEO w PHP)<\/p>\n<div class=\"sds-iframe-wrapper fitvidsignore\" style=\"position:relative;padding-top:56.25%;max-width:100%;\"><iframe allowfullscreen style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" src=\"\/\/www.facebook.com\/v2.6\/plugins\/like.php\" frameborder=\"0\"><\/iframe><\/div>\n<p>Widz\u0119 potrzeb\u0119 zarz\u0105dzania hiper\u0142\u0105czami w wordpressie w centralnym miejscu. Poniewa\u017c mam wiele link\u00f3w dofollow, kt\u00f3re nie s\u0105 ju\u017c wa\u017cne (dost\u0119pne). Uczynienie tych nieprawid\u0142owych link\u00f3w nofollow jest konieczno\u015bci\u0105 dla cel\u00f3w optymalizacji pod k\u0105tem wyszukiwarek (SEO) \u2013 jeste\u015b odpowiedzialny za usuni\u0119cie martwych link\u00f3w zwrotnych, aby unikn\u0105\u0107 kary za SEO.<\/p>\n<p>W tym po\u015bcie przyjrzymy si\u0119 <a href=\"https:\/\/helloacm.com\/php-function-to-get-exchange-rate-between-cryptocurrency-btc-ltc-eth-to-fiat-currency\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">funkcjom PHP<\/a> do automatycznego zarz\u0105dzania linkami, dzi\u0119ki czemu mo\u017cna albo automatycznie wygasa\u0107 linki, albo sprawi\u0107, by inne linki nie by\u0142y przestrzegane w jednym miejscu. Mo\u017cesz go u\u017cywa\u0107 w swojej witrynie i dzia\u0142a dobrze r\u00f3wnie\u017c w WordPress \u2013 mo\u017ce by\u0107 konieczne zmodyfikowanie funkcji podrz\u0119dnej motywu WordPress, aby zastosowa\u0107 transformacj\u0119 tekstu\/link\u00f3w.<\/p>\n<p>Po pierwsze, poni\u017csza funkcja find_links pobiera ci\u0105g HTML, wi\u0119c mo\u017cesz go nakarmi\u0107 wyj\u015bciem HTML, a nast\u0119pnie przeanalizuje ci\u0105g HTML i poszuka ka\u017cdego hiper\u0142\u0105cza:<\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\n2\n3\n4\n5\n6\n<\/pre>\n<\/td>\n<td>\n<pre><span>&lt;?php<\/span>\n<span>function<\/span> find_links<span>(<\/span><span>$htmlString<\/span><span>)<\/span><span>{<\/span>\n&nbsp; &nbsp; <span>$pattern<\/span> <span>=<\/span> <span>'\/&lt;a (.*?)href=[\"'](.*?)\/\/(.*?)[\"'](.*?)&gt;(.*?)&lt;\/a&gt;\/i'<\/span><span>;<\/span>\n&nbsp; &nbsp; <span>$htmlString<\/span> <span>=<\/span> <span>preg_replace_callback<\/span><span>(<\/span><span>$pattern<\/span><span>,<\/span> <span>'process_links'<\/span><span>,<\/span> <span>$htmlString<\/span><span>)<\/span><span>;<\/span>\n&nbsp; &nbsp; <span>return<\/span> <span>$htmlString<\/span><span>;<\/span>\n<span>}<\/span><\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<pre><code>&lt;?php\nfunction find_links($htmlString){\n    $pattern = '\/&lt;a (.*?)href=[\"'](.*?)\/\/(.*?)[\"'](.*?)&gt;(.*?)&lt;\/a&gt;\/i';\n    $htmlString = preg_replace_callback($pattern, 'process_links', $htmlString);\n    return $htmlString;\n}<\/code><\/pre>\n<p>Jak mo\u017cesz zauwa\u017cy\u0107, wyra\u017cenie regularne odwo\u0142uje proces_linki dla ka\u017cdego znalezionego <a href=\"https:\/\/wordpress.mediadoma.com\/pl\/uzywanie-wyrazenia-regularnego-do-zastepowania-linkow-zewnetrznych-w-wordpress-do-celow-seo\/\" title=\"hiper\u0142\u0105cza .\">hiper\u0142\u0105cza .<\/a> A poni\u017cej mo\u017cesz doda\u0107 swoj\u0105 domen\u0119 witryny do tablicy $good_domains. Mo\u017cesz tak\u017ce ustawi\u0107 wygasaj\u0105ce domeny i odpowiadaj\u0105ce im daty wyga\u015bni\u0119cia, aby linki automatycznie sta\u0142y si\u0119 NOFOLLOW.<\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<pre>1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n<\/pre>\n<\/td>\n<td>\n<pre><span>&lt;?php<\/span>\n<span>function<\/span> process_links<span>(<\/span><span>$m<\/span><span>)<\/span><span>{<\/span>\n&nbsp; &nbsp; <span>$good_domains<\/span> <span>=<\/span> <span>array<\/span><span>(<\/span>\n&nbsp; &nbsp; &nbsp; <span>\"<a target=\"_blank\" href=\"https:\/\/helloacm.com\/\" rel=\"nofollow noopener\"><span>helloacm<\/span><span>.<\/span><span>com<\/span><\/a>\"<\/span>\n&nbsp; &nbsp; <span>)<\/span><span>;<\/span>\n&nbsp; &nbsp; \n&nbsp; &nbsp; <span>$expiring_domains<\/span> <span>=<\/span> <span>array<\/span><span>(<\/span>\n&nbsp; &nbsp; &nbsp; &nbsp; <span>\"<a target=\"_blank\" href=\"http:\/\/fakedomain.com\/\" rel=\"nofollow noopener\"><span>fakedomain<\/span><span>.<\/span><span>com<\/span><\/a>\"<\/span> <span>=&gt;<\/span> <span>\"2099-01-01\"<\/span>\n&nbsp; &nbsp; <span>)<\/span><span>;<\/span>\n&nbsp; &nbsp; \n&nbsp; &nbsp; <span>$nofollow<\/span> <span>=<\/span> <span>\"rel=<span>\"<\/span>nofollow<span>\"<\/span>\"<\/span><span>;<\/span>\n&nbsp; &nbsp; <span>$target<\/span> <span>=<\/span> <span>\"target=<span>\"<\/span>blank<span>\"<\/span>\"<\/span><span>;<\/span>\n&nbsp; &nbsp; \n&nbsp; &nbsp; <span>$m<\/span><span>[<\/span><span>2<\/span><span>]<\/span> <span>=<\/span> <span>strtolower<\/span><span>(<\/span><span>$m<\/span><span>[<\/span><span>2<\/span><span>]<\/span><span>)<\/span><span>;<\/span>\n&nbsp; &nbsp; <span>if<\/span> <span>(<\/span><span>(<\/span><span>$m<\/span><span>[<\/span><span>2<\/span><span>]<\/span> <span>!=<\/span> <span>\"https:\"<\/span><span>)<\/span> <span>&amp;&amp;<\/span> <span>(<\/span><span>$m<\/span><span>[<\/span><span>2<\/span><span>]<\/span> <span>!=<\/span> <span>\"http:\"<\/span><span>)<\/span><span>)<\/span> <span>{<\/span>\n&nbsp; &nbsp; &nbsp; &nbsp; <span>$m<\/span><span>[<\/span><span>2<\/span><span>]<\/span> <span>=<\/span> <span>\"\"<\/span><span>;<\/span>\n&nbsp; &nbsp; <span>}<\/span>\n&nbsp; &nbsp; \n&nbsp; &nbsp; <span>\/\/$domain = str_lower(parse_url($m[3], PHP_URL_HOST));<\/span>\n&nbsp; &nbsp; <span>$domain<\/span> <span>=<\/span> getDomainName<span>(<\/span><span>$m<\/span><span>[<\/span><span>3<\/span><span>]<\/span><span>)<\/span><span>;<\/span>\n&nbsp; &nbsp; <span>$curDomain<\/span> <span>=<\/span> <span>$_SERVER<\/span><span>[<\/span><span>'SERVER_NAME'<\/span><span>]<\/span> ?? <span>\"\"<\/span><span>;<\/span>\n&nbsp; &nbsp; \n&nbsp; &nbsp; <span>if<\/span> <span>(<\/span><span>in_array<\/span><span>(<\/span><span>$domain<\/span><span>,<\/span> <span>$good_domains<\/span><span>)<\/span> <span>||<\/span> <span>(<\/span><span>$curDomain<\/span> <span>==<\/span> <span>$domain<\/span><span>)<\/span><span>)<\/span> <span>{<\/span>\n&nbsp; &nbsp; &nbsp; &nbsp; <span>$nofollow<\/span> <span>=<\/span> <span>\"\"<\/span><span>;<\/span>\n&nbsp; &nbsp; <span>}<\/span>\n&nbsp; &nbsp; \n&nbsp; &nbsp; <span>if<\/span> <span>(<\/span><span>$curDomain<\/span> <span>==<\/span> <span>$domain<\/span><span>)<\/span> <span>{<\/span>\n&nbsp; &nbsp; &nbsp; &nbsp; <span>$target<\/span> <span>=<\/span> <span>\"\"<\/span><span>;<\/span>\n&nbsp; &nbsp; <span>}<\/span> &nbsp; &nbsp; &nbsp; \n&nbsp; &nbsp; \n&nbsp; &nbsp; <span>if<\/span> <span>(<\/span><span>in_array<\/span><span>(<\/span><span>$domain<\/span><span>,<\/span> <span>array_keys<\/span><span>(<\/span><span>$expiring_domains<\/span><span>)<\/span><span>)<\/span><span>)<\/span> <span>{<\/span>\n&nbsp; &nbsp; &nbsp; &nbsp; <span>$expiry<\/span> <span>=<\/span> <span>$expiring_domains<\/span><span>[<\/span><span>$domain<\/span><span>]<\/span><span>;<\/span>\n&nbsp; &nbsp; &nbsp; &nbsp; <span>$today<\/span> <span>=<\/span> <span>date<\/span><span>(<\/span><span>\"Y-m-d\"<\/span><span>)<\/span><span>;<\/span> \n&nbsp; &nbsp; &nbsp; &nbsp; <span>if<\/span> <span>(<\/span><span>$today<\/span> <span>&lt;<\/span> <span>$expiry<\/span><span>)<\/span> <span>{<\/span>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span>$nofollow<\/span> <span>=<\/span> <span>\"\"<\/span><span>;<\/span>\n&nbsp; &nbsp; &nbsp; &nbsp; <span>}<\/span> &nbsp; &nbsp; &nbsp; &nbsp;\n&nbsp; &nbsp; <span>}<\/span>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \n&nbsp; &nbsp; <span>return<\/span> <span>\"&lt;a <span>$nofollow<\/span> <span>$target<\/span> href=<span>\"<\/span><span>{$m[2]}<\/span>\/\/<span>{$m[3]}<\/span><span>\"<\/span>&gt;<span>{$m[5]}<\/span>&lt;\/a&gt;\"<\/span><span>;<\/span>\n<span>}<\/span><\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<pre><code>&lt;?php\nfunction process_links($m){\n    $good_domains = array(\n      \"<\/code><\/pre>\n<p>Funkcja zmienia dwie w\u0142a\u015bciwo\u015bci hiper\u0142\u0105cza: _target, kt\u00f3ry b\u0119dzie _blank, gdy jest to domena zewn\u0119trzna, oraz rel, kt\u00f3ry zostanie automatycznie ustawiony na nofollow. Mo\u017cesz tak\u017ce doda\u0107 logik\u0119 do ujednolicenia wszystkich adres\u00f3w URL, np. Automatyczne przepisywanie HTTPS, etykiety hiper\u0142\u0105czy itp.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-155416-61e55ed6698ca.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-155416-61e55ed6698ca.jpg\" alt=\"Jak automatycznie wygasa\u0107 linki DoFollow (funkcja zarz\u0105dzania linkami SEO w PHP)\"><\/a><\/p>\n<p>\u2013EOF (<a href=\"https:\/\/helloacm.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Najlepszy blog komputerowy i technologiczny<\/a>) \u2014<\/p>\n<p>Ocena: 10.0\/ <strong>10<\/strong> (1 oddany g\u0142os)<\/p>\n<div class=\"sds-iframe-wrapper fitvidsignore\" style=\"position:relative;padding-top:56.25%;max-width:100%;\"><iframe allowfullscreen style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" src=\"\/\/www.facebook.com\/v2.6\/plugins\/like.php\" frameborder=\"0\"><\/iframe><\/div>\n<p>536 s\u0142\u00f3w<br \/>\n<strong>Ostatni post<\/strong>: <a href=\"https:\/\/helloacm.com\/teaching-kids-programming-converting-spreadsheet-column-titles-to-number\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Nauczanie programowania dzieci \u2013 Konwersja tytu\u0142\u00f3w kolumn w arkuszu kalkulacyjnym na liczby<\/a><br \/>\n<strong>Nast\u0119pny post<\/strong>: <a href=\"https:\/\/helloacm.com\/teaching-kids-programmaing-generate-prime-numbers-using-sieve-of-eratosthenes-algorithms\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Nauczanie programowania dzieci \u2013 Generowanie liczb pierwszych za pomoc\u0105 algorytm\u00f3w sita Eratostenesa<\/a><\/p>\n<p>Sta\u0142y adres URL to: <a href=\"https:\/\/helloacm.com\/how-to-expire-dofollow-links-automatically-seo-links-management-function-in-php\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Jak automatycznie wygasa\u0107 linki DoFollow (funkcja zarz\u0105dzania linkami SEO w PHP)<\/a> <a href=\"https:\/\/helloacm.com\/how-to-expire-dofollow-links-automatically-seo-links-management-function-in-php\/amp\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">(wersja AMP)<\/a><\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jak automatycznie wygasa\u0107 linki DoFollow (funkcja zarz\u0105dzania linkami SEO w PHP)<\/p>\n","protected":false},"author":1,"featured_media":224449,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[897,997,805,845,1008,866],"tags":[1169],"class_list":["post-232921","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kod","category-marketing-tresci","category-php-7","category-samouczki","category-seo-8","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/232921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=232921"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/232921\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/224449"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=232921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=232921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=232921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}