{"id":249506,"date":"2023-01-03T08:39:00","date_gmt":"2023-01-03T05:39:00","guid":{"rendered":"https:\/\/inform.click\/poikkeuksellisen-hyodylliset-wordpress-hackit-joita-et-todennakoisesti-ole-viela-kayttanyt\/"},"modified":"2023-01-03T08:39:00","modified_gmt":"2023-01-03T05:39:00","slug":"poikkeuksellisen-hyodylliset-wordpress-hackit-joita-et-todennakoisesti-ole-viela-kayttanyt","status":"publish","type":"post","link":"https:\/\/inform.click\/fi\/poikkeuksellisen-hyodylliset-wordpress-hackit-joita-et-todennakoisesti-ole-viela-kayttanyt\/","title":{"rendered":"Poikkeuksellisen hy\u00f6dylliset WordPress-hackit, joita et todenn\u00e4k\u00f6isesti ole viel\u00e4 k\u00e4ytt\u00e4nyt"},"content":{"rendered":"<p>\n  Nyt, niin &#8221;arkip\u00e4iv\u00e4isest\u00e4&#8221; kuin WordPressist\u00e4 on tullutkin \u2013 koska joka toinen tai kolmas kohtaamasi verkkosivusto on WordPressin k\u00e4ytt\u00e4m\u00e4 \u2013 on aina toistuvia sanoja &#8221;miten ihmeess\u00e4 he tekiv\u00e4t t\u00e4m\u00e4n!&#8221; hetki\u00e4, kun vierit\u00e4t WordPress-alueella.\n<\/p>\n<p>\n  Huolimatta siit\u00e4, ett\u00e4 verkkokehitysyhteis\u00f6 tavoittelee WordPressi\u00e4 niin huomattavan paljon, se ei ole koskaan lakannut k\u00e4ytt\u00e4m\u00e4st\u00e4 uskomattomia temppuja ja yll\u00e4tyksi\u00e4 hihassaan. Vaikka on olemassa koko joukko laajennuksia, jotka eiv\u00e4t koskaan ep\u00e4onnistu viem\u00e4\u00e4n WordPress-verkkosivuston toiminnallisuutta oletusarvoja pidemm\u00e4lle ja onnistuvat antamaan verkkovastaavien muokata verkkosivustoaan t\u00e4sm\u00e4lleen haluamallaan tavalla, mutta juuri <strong>WordPress-hackit<\/strong> antavat verkkovastaaville r\u00e4\u00e4t\u00e4l\u00f6innin. ominaisuudet, joita ei voida saavuttaa mill\u00e4\u00e4n laajennuksella.\n<\/p>\n<p>\n  WordPress-hakkerointi on vakiinnuttanut jalansijaa ja saamassa paljon jalansijaa, kun ohjelmoimattomat verkkovastaavat pyyt\u00e4v\u00e4t joidenkin web-kehitt\u00e4jien apua lis\u00e4t\u00e4kseen verkkosivustoonsa muutamia ominaisuuksia, jotka todella auttaisivat heit\u00e4 parantamaan sen toimivuutta ja viem\u00e4\u00e4n sen vertaistensa ulkopuolelle. Teemme kuitenkin ty\u00f6t\u00e4si helpommaksi heitt\u00e4m\u00e4ll\u00e4 sinulle muutamia koodinp\u00e4tki\u00e4, joita tarvitset (ja haluat), jotta verkkosivustosi py\u00f6rii juuri haluamaasi suuntaan.\n<\/p>\n<p>\n  Seuraava luettelo k\u00e4sittelee sellaisia \u200b\u200bhakkereita, joita voit toteuttaa verkkosivustollasi, jotta se voisi ylpeill\u00e4 poikkeuksellisista mukautetuista ominaisuuksista ja ominaisuuksista, jotka vaikuttavat muuten melko ep\u00e4todenn\u00e4k\u00f6isilt\u00e4.\n<\/p>\n<h5>\n  1 Pikakoodien ottaminen k\u00e4ytt\u00f6\u00f6n widgeteiss\u00e4<br \/>\n<\/h5>\n<p>\n  Widgetit eiv\u00e4t koskaan lakkaa antamasta verkkosivustollemme sit\u00e4 etua, josta aina kilpailemme. Ne ovat v\u00e4ltt\u00e4m\u00e4t\u00f6n osa l\u00e4hes jokaista WordPress-verkkosivustoa, ja n\u00e4in ollen tapa parantaa niiden ulkon\u00e4k\u00f6\u00e4 tai ominaisuuksia on aina tervetullut, ja juuri siihen lyhytkoodit on tarkoitettu. K\u00e4yt\u00e4 suodatinta samaan:\n<\/p>\n<pre><code>add_filter( 'widget_text', 'do_shortcode' );<\/code><\/pre>\n<h5>\n  2 Ylimm\u00e4n navigoinnin lis\u00e4\u00e4minen n\u00e4kyv\u00e4mm\u00e4ksi<br \/>\n<\/h5>\n<p>\n  Verkkosivustosi yl\u00e4navigointipalkin valikko on luultavasti huomioimaton yksinkertaisesti sen sijainnin vuoksi. Ja t\u00e4st\u00e4 syyst\u00e4 sinun on siirrett\u00e4v\u00e4 sit\u00e4, ja t\u00e4ss\u00e4 sen siirt\u00e4minen auttaa:\n<\/p>\n<pre><code>#top-nav {float: right;}<\/code><\/pre>\n<h5>\n  3 Siirr\u00e4 navigointivalikko keskelle (koodi: GitHub)<br \/>\n<\/h5>\n<p>\n  On kaikki mahdollista, ett\u00e4 olet p\u00e4\u00e4tt\u00e4nyt kohdistaa logosi uudelleen sijoittaaksesi sen otsikon keskelle, joten sinun on siirrett\u00e4v\u00e4 navigointivalikko keskelle, jotta se ei n\u00e4yt\u00e4 paikaltaan. Ja n\u00e4in teet sen:\n<\/p>\n<pre><code>#navigation {\n     position: relative;\n}\n #main-nav {\n     clear: left;\n     float: left;\n     list-style: none;\n     margin: 0;\n     padding: 0;\n     position: relative;\n     left: 50%;\n     text-align: center;\n}\n .nav li {\n     display: block;\n     float: left;\n     list-style: none;\n     margin: 0;\n     padding: 0;\n     position: relative;\n     right: 50%;\n}\n .nav li.hover, .nav li.hover {\n     position: relative;\n}\n  \n.nav li ul li {\n     left: 0;<\/code><\/pre>\n<h5>\n  4 Viivyt\u00e4 viestisi julkaisua RSS-sy\u00f6tteiss\u00e4<br \/>\n<\/h5>\n<p>\n  Ei ole harvinaista tehd\u00e4 virheit\u00e4 postauksen kirjoittamisessa, mutta kun viestit on jo l\u00e4hetetty RSS:\u00e4\u00e4n, pienet virheet voivat osoittautua tarpeeksi kalliiksi. Ja t\u00e4m\u00e4 on silloin, kun prosessin viivytt\u00e4minen tulee apuun.\n<\/p>\n<p>\n  Nyt voit varmistaa, ett\u00e4 viestit eiv\u00e4t mene RSS-sy\u00f6tteeseen heti, kun julkaiset ne blogissasi. Sinun tarvitsee vain lis\u00e4t\u00e4 t\u00e4m\u00e4 koodinp\u00e4tk\u00e4 functions.php-tiedostoon verkkosivustosi taustaohjelmassa:\n<\/p>\n<pre><code>function publish_later_on_feed($where) {\nglobal $wpdb;\nif (is_feed()) {\n$time_now = gmdate('Y-m-d H:i:s');\n$time_delay = '15'; \/\/ integer\n$time_span = 'MINUTE'; \/\/MINUTE, HOUR, DAY, WEEK, MONTH, YEAR\n$where = \" AND TIMESTAMPDIFF($device, $wpdb-&gt;posts.post_date_gmt, '$time_now') &gt; $time_delay \";\n}\nreturn $where;\n}\nadd_filter('posts_where', 'publish_later_on_feed');<\/code><\/pre>\n<h5>\n  5 Etk\u00f6 halua en\u00e4\u00e4 py\u00f6reit\u00e4 avatareja? Tee niist\u00e4 neli\u00f6m\u00e4isi\u00e4<br \/>\n<\/h5>\n<p>\n  WordPress-verkkosivustollesi valitsemasi teema saattaa automaattisesti muokata avatar-kuvia esitt\u00e4m\u00e4\u00e4n ne py\u00f6re\u00e4ss\u00e4 muodossa. Mutta monet verkkovastaavat haluavat mieluummin avatarinsa n\u00e4kyv\u00e4n neli\u00f6m\u00e4isess\u00e4 muodossa. Samaan aikaan t\u00e4m\u00e4 GitHubin koodi toimii poikkeuksellisen hyvin:\n<\/p>\n<pre><code>#post-author .profile-image img, #comments .avatar img {\nborder-radius: 0;\n-moz-border-radius: 0;\n-webkit-border-radius: 0;\n}<\/code><\/pre>\n<h5>\n  6 Anna RSS-sy\u00f6tteesi sis\u00e4lt\u00e4\u00e4 julkaisun suositeltu kuva<br \/>\n<\/h5>\n<p>\n  Kuvien k\u00e4ytt\u00e4minen viesteiss\u00e4si antaa sille aina lis\u00e4ponnistusta yleis\u00f6si keskuudessa ja houkuttelee heit\u00e4 lukemaan ja jakamaan niit\u00e4 edelleen piireilleen. Ja kun pystyt k\u00e4ytt\u00e4m\u00e4\u00e4n julkaisun esitelty\u00e4 kuvaa RSS-sy\u00f6tteiss\u00e4si, parannat julkaisun kattavuutta entisest\u00e4\u00e4n tekem\u00e4ll\u00e4 siit\u00e4 visuaalisesti tarttuvampi:\n<\/p>\n<pre><code>add_filter('the_content_feed', 'rss_post_thumbnail');\nfunction rss_post_thumbnail($content) {\nglobal $post;\nif( has_post_thumbnail($post-&gt;ID)) $content = '&lt;br \/&gt;'. get_the_post_thumbnail($post-&gt;ID, 'thumbnail'). '&lt;br \/&gt;&lt;br \/&gt;'. $content;\nreturn $content;\n}<\/code><\/pre>\n<h5>\n  7 Poista tietyn sivun otsikko<br \/>\n<\/h5>\n<p>\n  Vaikka on ty\u00f6kaluja, jotka helpottavat otsikoiden poistamista kaikilta sivuston sivuilta, joskus haluat poistaa ne vain tietyilt\u00e4 sivuilta. Ja t\u00e4ss\u00e4 on koodi, jota tarvitset siihen &#8211; korvaa vain &#8221;abcd&#8221; mink\u00e4 tahansa viestin sivun tunnusnumerolla:\n<\/p>\n<pre><code>.page-id-xxxx .title {\ndisplay: none;\n}<\/code><\/pre>\n<h5>\n  8 Etk\u00f6 halua HTML-koodia kommentteihin? Mene eteenp\u00e4in ja poista se k\u00e4yt\u00f6st\u00e4<br \/>\n<\/h5>\n<p>\n  Kommenttiosiossa oleva HTML voi johtaa rekkakuormaan roskapostia, jolla voi lopulta olla vakavia seurauksia verkkosivustollesi. Ja t\u00e4st\u00e4 syyst\u00e4 HTML-koodin poistaminen k\u00e4yt\u00f6st\u00e4 kommenttiosiossa on eritt\u00e4in t\u00e4rke\u00e4\u00e4, jotta sivustosi pysyy roskapostittomana. Lis\u00e4\u00e4 t\u00e4m\u00e4 koodinp\u00e4tk\u00e4 functions.php-tiedostoon:\n<\/p>\n<pre><code>\/\/As soon as someone comments\nfunction plc_comment_post( $incoming_comment) {\n    \/\/ convert everything in a comment to display literally\n    $incoming_comment['comment_content'] = htmlspecialchars($incoming_comment['comment_content']);\n    \/\/ the one exception is single quotes, which cannot be #039; because WordPress marks it as spam\n    $incoming_comment['comment_content'] = str_replace( \"'\", ''', $incoming_comment['comment_content'] );\n    return( $incoming_comment );\n}\n\/\/ This will occur before a comment is displayed\nfunction plc_comment_display( $comment_to_display) {\n    \/\/ Put the single quotes back in\n    $comment_to_display = str_replace( ''', \"'\", $comment_to_display );\n    return $comment_to_display;\n}\nadd_filter( 'preprocess_comment', 'plc_comment_post', '', 1 );\nadd_filter( 'comment_text', 'plc_comment_display', '', 1 );\nadd_filter( 'comment_text_rss', 'plc_comment_display', '', 1 );\nadd_filter( 'comment_excerpt', 'plc_comment_display', '', 1 );\n\/\/ This stops WordPress from trying to automatically make hyperlinks on text:\nremove_filter( 'comment_text', 'make_clickable', 9 );<\/code><\/pre>\n<h5>\n  9 Kun k\u00e4ytt\u00e4j\u00e4 hakee tietty\u00e4 viesti\u00e4 sivustoltasi, vie h\u00e4net suoraan T\u00e4ydelliseen viestiin<br \/>\n<\/h5>\n<p>\n  Et ehk\u00e4 ole pit\u00e4nyt sit\u00e4 liian tarpeellisena, mutta jos tiettyj\u00e4 viestej\u00e4 etsiv\u00e4t k\u00e4ytt\u00e4j\u00e4t ohjataan suoraan koko viestiin sen pikkukuvan sijaan, jossa on ote, he arvostavat sit\u00e4. Se ei pakota jatkamaan navigointia ja parantaa siten k\u00e4ytt\u00f6kokemusta huomattavasti.\n<\/p>\n<pre><code>add_action('template_redirect', 'redirect_single_post');\nfunction redirect_single_post() {\n    if (is_search()) {\n        global $ks29so_query;\n        if ($ks29so_query-&gt;post_count == 1 && $ks29so_query-&gt;max_num_pages == 1) {\n            ks29so_redirect( get_permalink( $ks29so_query-&gt;posts['0']-&gt;ID) );\n            exit;\n        }\n    }\n}<\/code><\/pre>\n<h5>\n  10 N\u00e4yt\u00e4 tarkin ja nykyinen tekij\u00e4noikeusp\u00e4iv\u00e4m\u00e4\u00e4r\u00e4<br \/>\n<\/h5>\n<p>\n  Tekij\u00e4noikeus on v\u00e4ltt\u00e4m\u00e4t\u00f6n osa mit\u00e4 tahansa verkkosivustoa, joka sis\u00e4lt\u00e4\u00e4 paljon hy\u00f6dyllist\u00e4 tietoa, jota verkkovastaava ei halua kopioida muiden verkon satunnaistajien toimesta. T\u00e4st\u00e4 syyst\u00e4 on t\u00e4rke\u00e4\u00e4 n\u00e4ytt\u00e4\u00e4 tekij\u00e4noikeustiedot tarkasti ja synkronoituna kuluvan vuoden kanssa. Seuraava koodinp\u00e4tk\u00e4 mahdollistaa tekij\u00e4noikeustietojen jatkuvan p\u00e4ivitt\u00e4misen automaattisesti:\n<\/p>\n<pre><code>function comicpress_copyright() {\nglobal $wpdb;\n$copyright_dates = $wpdb-&gt;get_results(\"\nSELECT\nYEAR(min(post_date_gmt)) AS firstdate,\nYEAR(max(post_date_gmt)) AS lastdate\nFROM\n$wpdb-&gt;posts\nWHERE\npost_status = 'publish'\n\");\n$output = '';\nif($copyright_dates) {\n$copyright = \"\u00a9 \". $copyright_dates[0]-&gt;firstdate;\nif($copyright_dates[0]-&gt;firstdate != $copyright_dates[0]-&gt;lastdate) {\n$copyright .= '-'. $copyright_dates[0]-&gt;lastdate;\n}\n$output = $copyright;\n}\nreturn $output;\n}<\/code><\/pre>\n<h5>\n  11 Uudelleenohjaa k\u00e4ytt\u00e4j\u00e4t sis\u00e4\u00e4nkirjautumisen j\u00e4lkeen<br \/>\n<\/h5>\n<p>\n  Kun kuka tahansa k\u00e4ytt\u00e4j\u00e4 on kirjautunut sivustollesi, h\u00e4net voidaan helposti ohjata toiseen valitsemaasi URL-osoitteeseen. Tarvitset vain t\u00e4m\u00e4n koodinp\u00e4tk\u00e4n functions.php-tiedostossa:\n<\/p>\n<pre><code>&lt;?php function redirect_user_on_role() { \/\/retrieve current user info global $current_user; get_currentuserinfo(); \/\/If login user role is Subscriber if ($current_user-&gt;user_level == 0)\n{\nks29so_redirect( home_url() ); exit;\n}\n\/\/If login user role is Contributor\nelse if ($current_user-&gt;user_level &gt; 1)\n{\nks29so_redirect( home_url() ); exit;\n}\n\/\/If login user role is Editor\nelse if ($current_user-&gt;user_level &gt;8)\n{\nks29so_redirect( home_url() ); exit;\n}\n\/\/ For other roles\nelse\n{\n$redirect_to = 'http:\/\/google.com\/';\nreturn $redirect_to;\n}\n}\nadd_action('admin_init','redirect_user_on_role');\n \n?&gt;<\/code><\/pre>\n<h5>12 Anna otsikon n\u00e4ytt\u00e4\u00e4 joitain mukautettuja widgetej\u00e4<\/h5>\n<p>Verkkosivustosi otsikko on loistava mainosalue, jossa voit n\u00e4ytt\u00e4\u00e4 todella havaittavia mainoksia. Yksi yleinen havaittu seikka on kuitenkin se, ett\u00e4 sivuston yll\u00e4pit\u00e4j\u00e4t eiv\u00e4t voi paljon hallita sit\u00e4, kuinka he haluavat n\u00e4ytt\u00e4\u00e4 elementtej\u00e4 otsikossa, ja t\u00e4m\u00e4 johtaa joustavuuden puutteeseen.<\/p>\n<p>J\u00e4rjestelm\u00e4nvalvojat haluavat r\u00e4\u00e4t\u00e4l\u00f6innin, jotta he voivat lis\u00e4t\u00e4 mit\u00e4 tahansa logon oikealle puolelle, ja seuraavat koodirivit antavat heid\u00e4n tehd\u00e4 juuri sen:<\/p>\n<pre><code>if (function_exists('register_sidebar')) {\nregister_sidebar(array(\n 'name' =&gt; 'Header Widget',\n 'id' =&gt; 'header-widget',\n 'description' =&gt; 'This is a widgetized area in the right side of the header.',\n 'before_widget' =&gt; '&lt;div id=\"%1$s\" div class=\"widget\"&gt;',\n 'after_widget' =&gt; '&lt;\/div&gt;',\n 'before_title' =&gt; '&lt;h3&gt;',\n 'after_title' =&gt; '&lt;\/h3&gt;'\n ));\nadd_action( 'woo_header_inside', 'custom_canvas_header' );\nfunction custom_canvas_header() {\n?&gt;\n&lt;div id=\"header-widget\"&gt;\n&lt;?php if (function_exists('dynamic_sidebar') && dynamic_sidebar('header-widget')): else: ?&gt;\n&lt;?php endif; ?&gt;\n\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Nyt, niin &#8221;arkip\u00e4iv\u00e4isest\u00e4&#8221; kuin WordPressist\u00e4 onkaan tullut \u2013 koska joka toinen tai kolmas kohtaamasi verkkosivusto on WordPressin k\u00e4ytt\u00e4m\u00e4 \u2013 on aina usein sanottu &#8221;miten ihmeess\u00e4 he tekiv\u00e4t t\u00e4m\u00e4n!&#8221; hetki\u00e4, kun vierit\u00e4t WordPress-alueella. Huolimatta siit\u00e4, ett\u00e4 verkkokehitysyhteis\u00f6 tavoittelee WordPressi\u00e4 niin huomattavan paljon, se ei ole koskaan lakannut k\u00e4ytt\u00e4m\u00e4st\u00e4 uskomattomia temppuja ja yll\u00e4tyksi\u00e4 hihassaan. Vaikka on olemassa koko joukko laajennuksia, jotka eiv\u00e4t koskaan ep\u00e4onnistu viem\u00e4\u00e4n WordPress-verkkosivuston toimintoja oletusarvoja pidemm\u00e4lle ja antavat verkkovastaavien muokata verkkosivustoaan\u2026<\/p>\n","protected":false},"author":1,"featured_media":221613,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[222,53,157],"tags":[],"class_list":["post-249506","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oppikirjoja","category-web-ja-wordpress-2","category-wordpress-laajennukset"],"_links":{"self":[{"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/posts\/249506","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/comments?post=249506"}],"version-history":[{"count":0,"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/posts\/249506\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/media\/221613"}],"wp:attachment":[{"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/media?parent=249506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/categories?post=249506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inform.click\/fi\/wp-json\/wp\/v2\/tags?post=249506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}