Skip to content

Kaikki WordPressistä, web-kehityksestä — ja paljon muuta

🔖 Näin otat käyttöön avainsanat WordPress-sivuilla

🔖 Näin otat käyttöön avainsanat WordPress-sivuilla

WordPress-sivut eivät tue avainsanoja suoraan, ja tämä on ärsyttävää siihen asti, kunnes ymmärrät, miksi se on tehty niin. Sivu WordPressissä on teknisesti mukautettu sisältötyyppi, johon post_tag-taksonomiaa ei yksinkertaisesti ole liitetty. Ydinkehittäjät pitivät avainsanat vain artikkeleilla, koska he kohtelevat sivuja staattisena sisältönä.

Mutta käytännössä tämän rajoituksen voi kiertää viidessä minuutissa. Kaksi tapaa: rivi koodia functions.php-tiedostossa tai mikrolisäosa, jonka voit ottaa käyttöön ja poistaa käytöstä muokkaamatta teemaasi. Alla on molemmat vaihtoehdot ja selitys siitä, mitä tarkalleen tapahtuu pinnan alla.

💡 Pikaopas:

  • Rekisteröi post_tag-taksonomia page-sisältötyypille käyttämällä yhtä funktiota register_taxonomy_for_object_type

  • Lisää avainsanatuki arkistoihin pre_get_posts-koukun kautta, jotta sivut näkyvät avainsanakyselyjen tuloksissa

  • Koodi toimii kaikille mukautetuille sisältötyypeille; toista vain kutsu halutulla tyyppinimellä

  • Kaikki kääritään erilliseksi lisäosaksi minuutissa: tiedosto → lisäosan otsikko → koodi → aktivointi

Miksi avainsanat sivuille

Avainsanat eivät ole vain sivupalkin pilvi. Ne ovat navigaatioakseli, joka linkittää hajallaan olevat sivut temaattisiin ryhmiin nopeammin kuin kategoriat tai valikot.

WordPress-sivut lisääntyvät usein: yhteystiedot, käytännöt, ehdot, palveluiden aloitussivut, portfoliot, dokumentaatio. Ilman avainsanoja niiden välinen yhteys perustuu pelkästään manuaalisiin linkkeihin tekstissä. Avainsanojen avulla yksi "Toimitus"-sivu päätyy automaattisesti "logistiikka"-ryhmään "Palautukset"-sivun viereen, ja kävijät napsauttavat avainsanaa nähdäkseen kaiken aiheeseen liittyvän.

SEO:n kannalta avainsanat sivuilla tarjoavat lisää sisäisiä linkityksiä ja vähentävät välitöntä poistumisprosenttia: käyttäjät eivät poistu ensimmäisen sivun jälkeen, vaan sukeltavat temaattiseen kokoelmaan. Lisäksi avainsanat päätyvät sivustokarttaan, mikä auttaa hakukoneita ymmärtämään rakennetta paremmin.

Tapa 1: koodi functions.php-tiedostossa

Suorin reitti on lisätä koodinpätkä aktiivisen teemasi functions.php-tiedostoon. Avaa wp-content/themes/YOUR_THEME/functions.php ja liitä koodi ennen sulkevaa ?>-merkintää tai tiedoston loppuun:

1/**
2 * Add tag support to WordPress pages.
3 * Code — in functions.php of child theme or via Code Snippets plugin.
4 */
5function sdstudio_add_tags_to_pages() {
6 register_taxonomy_for_object_type( 'post_tag', 'page' );
7}
8add_action( 'init', 'sdstudio_add_tags_to_pages' );
9
10/**
11 * Include pages in tag archive queries.
12 * Without this, pages won't appear on /tag/tag-name/
13 */
14function sdstudio_pages_in_tag_archives( $wp_query ) {
15 if ( $wp_query->get( 'tag' ) ) {
16 $wp_query->set( 'post_type', 'any' );
17 }
18}
19add_action( 'pre_get_posts', 'sdstudio_pages_in_tag_archives' );

Tässä on mitä tapahtuu. Funktio register_taxonomy_for_object_type() linkittää olemassa olevan post_tag-taksonomian page-sisältötyyppiin. Tämä on WordPressin ydinfunktio; dokumentaatio developer.wordpress.org-sivustolla. Se ei luo uutta taksonomiaa, vaan lisää ainoastaan "sivut → avainsanat"-suhteen.

pre_get_posts-koukku muokkaa SQL-kyselyä ennen sen suorittamista. Kun WordPress rakentaa avainsana-arkistosivua (/tag/name/), se etsii oletuksena vain post-tyyppisiä artikkeleita. Rivi $wp_query->set( 'post_type', 'any' ) laajentaa valinnan kaikkiin tyyppeihin: sivut, artikkelit, mukautetut tyypit.

Koodin lisäämisen jälkeen mene mille tahansa sivulle, ja "Avainsanat"-lohko ilmestyy sivupalkkiin aivan kuten tavallisissa artikkeleissa. Se toimii heti; välimuistia ei tarvitse tyhjentää.

Mukauttaminen mukautetuille sisältötyypeille

Jos sinulla on mukautettuja sisältötyyppejä (CPT), kuten portfolioita, suosituksia tai tuotteita, jotka tarvitsevat myös avainsanoja, lisää sama määrä register_taxonomy_for_object_type()-kutsuja init-funktiosi sisään:

1register_taxonomy_for_object_type( 'post_tag', 'portfolio' );
2register_taxonomy_for_object_type( 'post_tag', 'testimonials' );

CPT-nimi on toinen argumentti, sama, joka määritettiin rekisteröitäessä tyyppi register_post_type()-funktiolla. pre_get_posts-koodiin ei tarvita lisämuokkauksia: 'any' sisältää jo kaikki rekisteröidyt tyypit.

Tapa 2: erillinen lisäosa

functions.php-tiedoston muokkaaminen suoraan on toimiva ratkaisu, mutta hauras. Vaihda teemaa, ja koodi katoaa vieden sivujen avainsanat mukanaan. Niille, jotka hallinnoivat useita sivustoja tai vaihtavat teemaa usein, on luotettavampaa siirtää koodinpätkä erilliseen lisäosaan.

Luo tiedosto wp-content/plugins/sdstudio-tags-for-pages.php tällä sisällöllä:

1<?php
2/**
3 * Plugin Name: Tags for Pages
4 * Description: Enables post tags on WordPress pages and custom post types
5 * Version: 1.0
6 * Author: SDStudio
7 * License: GPL-2.0+
8 */
9
10// Direct access — forbidden
11if ( ! defined( 'ABSPATH' ) ) {
12 exit;
13}
14
15// Tags → pages
16function sdstudio_tags_for_pages() {
17 register_taxonomy_for_object_type( 'post_tag', 'page' );
18}
19add_action( 'init', 'sdstudio_tags_for_pages' );
20
21// Pages → tag archive
22function sdstudio_pages_in_tag_queries( $wp_query ) {
23 if ( ! is_admin() && $wp_query->is_main_query() && $wp_query->get( 'tag' ) ) {
24 $wp_query->set( 'post_type', 'any' );
25 }
26}
27add_action( 'pre_get_posts', 'sdstudio_pages_in_tag_queries' );

Ero ensimmäiseen tapaan on tarkistus ! is_admin() && $wp_query->is_main_query(). Se varmistaa, ettei hallintakyselyihin vaikuteta: pre_get_posts laukeaa kaikkialla, mukaan lukien sivulistaus hallintapaneelissa, ja ilman tätä tarkistusta voit saada odottamatonta käyttäytymistä suodatettaessa.

Tiedosto on valmis; mene Lisäosat-kohtaan, etsi "Tags for Pages" ja aktivoi se. Siinä kaikki. Kun vaihdat teemaa, lisäosa pysyy aktiivisena eivätkä avainsanat katoa. Monisivustoasennuksessa lisäosan voi ottaa käyttöön sivustokohtaisesti tai verkkoaktivoida koko verkolle.

Tapa 3: valmiit lisäosat hakemistosta

Jos et halua kirjoittaa koodia, valmiit ratkaisut WordPress.org-sivustolta hoitavat tehtävän. Ne lisäävät paitsi avainsanoja myös kategorioita sivuille sekä hallintaliittymän.

Add Categories to Pages on kevyt lisäosa, joka mahdollistaa sekä kategoriat että avainsanat sivuille yhdellä valintaruudulla. Ei asetuksia, ei mainoksia. Sopii, kun tarvitset vain asioiden toimivan ilman ylimääräisiä näyttöjä.

Tässä on videoesittely avainsanojen lisäämisestä sivuille koodilla ja lisäosalla, 4 minuuttia, kaikki vaiheet näytetään reaaliajassa:

Avainkohta: kolmannen osapuolen lisäosat tuovat mukanaan lisää koodia ja koukkuja. Jos sivustosi on jo kuormitettu tusinalla lisäosia, yksi lisää on yksi vikapiste lisää. Tapojen 1 ja 2 koodi painaa vain tavuja eikä lisää tietokantakyselyitä standardien lisäksi.

⁉️🤔 Usein kysytyt kysymykset

Toimiiko tämä monisivustoasennuksessa? Kyllä, koodi on universaali. Voit aktivoida lisäosan sivustokohtaisesti tai ottaa sen käyttöön koko verkossa "Verkkoaktivoi"-toiminnolla.

WordPress-monisivustoasennuksessa koodi toimii identtisesti kaikilla verkon sivustoilla. Funktio register_taxonomy_for_object_type() on sidottu post_tag-taksonomiaan, joka on olemassa erikseen jokaisella verkon sivustolla, joten avainsanat eivät mene päällekkäin sivustojen välillä. Jokaiselle alisivustolle sivujen avainsanat otetaan käyttöön itsenäisesti: aktivoi lisäosa yhdellä sivustolla, ja avainsanat ilmestyvät vain sinne.

Tarvitseeko pysyvälinkit päivittää koodin lisäämisen jälkeen? Ei, URL-rakenne ei muutu. Sivujen avainsanat eivät lisää uusia uudelleenkirjoitussääntöjä.

WordPress tallentaa "sivu, avainsana"-suhteen wp_term_relationships-tauluun, samaan jota käytetään artikkeleille. Uudelleenkirjoitussääntöihin ei vaikuteta: avainsana-arkisto on jo olemassa (/tag/name/), ja pre_get_posts yksinkertaisesti sisällyttää sivut sen kyselyyn. Pysyvälinkkeihin ei tarvitse koskea; kaikki toimii heti koodin aktivoinnin jälkeen.

Katoavatko avainsanat teemaa vaihdettaessa? Riippuu tavasta. Teeman functions.php-tiedostossa oleva koodi aiheuttaa niiden katoamisen. Lisäosassa tai Code Snippets -työkalussa oleva koodi säilyttää ne.

Teemaa vaihdettaessa WordPress lataa uuden functions.php-tiedoston, joten vanhan teeman koodinpätkä lakkaa suorittamasta ja avainsanojen metalaatikko sivuilta katoaa. Tietokannassa olevia "sivu, avainsana"-suhteita ei kuitenkaan poisteta. Palauta vain koodi (uuteen teemaan tai lisäosan kautta), ja kaikki aiemmin määritetyt avainsanat ilmestyvät uudelleen hallintaan.

Voinko määrittää avainsanoja ohjelmallisesti tuotaessa sivuja? Kyllä, funktiolla wp_set_object_terms( $page_id, array( 'tag1', 'tag2' ), 'post_tag' ).

Funktio wp_set_object_terms() hyväksyy sivun ID:n, taulukon avainsanojen nimiä ja taksonomian nimen. Jos kyseisellä nimellä ei ole avainsanaa, WordPress luo sen automaattisesti. Tämä on kätevää migraatiossa: skripti käy läpi kaikki sivut ja määrittää avainsanat CSV-tiedostosta tai vanhasta CMS:stä. On tärkeää suorittaa skripti init-tapahtuman jälkeen, muuten taksonomiaa ei ole vielä rekisteröity.

Entä avainsanapilvi: näkyvätkö sivut siinä? Kyllä, tavallinen "Avainsanapilvi"-widget poimii avainsanat sivuilta ilman lisäasetuksia.

wp_tag_cloud()-widget kerää oletuksena kaikki post_tag-taksonomian objektit sisältötyypistä riippumatta. Heti kun sivulla on vähintään yksi avainsana, se päätyy pilveen tasavertaisesti artikkeli-avainsanojen kanssa. Esiintymistiheys lasketaan myös oikein: avainsana kolmella sivulla ja kahdessa artikkelissa antaa painoksi "5" ja näkyy suurempana.

Mitä valita: koodi vai lisäosa

Tietty valinta riippuu skenaariostasi, ei "oikeasta vastauksesta".

Yksittäisen sivuston omistajille, jotka eivät vaihda teemaa vuosiin, koodinpätkä functions.php-tiedostossa riittää: kopioi, liitä, valmis. Freelancereille, joilla on tusina asiakassivustoa, lisäosa on kätevämpi: lähetä zip-tiedosto asiakkaalle tai aktivoi uudessa projektissa sekunneissa. Ne, jotka jo käyttävät Code Snippetsiä tai WPCodeBoxia, voivat yksinkertaisesti lisätä koodinpätkän kokoelmaansa; se ei katoa teemapäivityksissä eikä vaadi erillistä lisäosaa.

Jos tarvitset enemmän kuin avainsanoja (kategorioita, mukautettuja taksonomioita, edistynyttä suodatusta), katso valmiita lisäosia WordPress.org-sivustolta. Mutta tehtävään "avainsanojen käyttöönotto sivuille" seitsemän riviä koodia riittää. Kaikki muu on ylimitoitettua.

Seuraavaksi määritä avainsanarakenteesi: mieti 5-7 keskeistä aihetta sivuille ja määritä ne. Kuukauden kuluttua avainsanapilvi näyttää, mitkä sivuston aiheet ovat vahvimmin yhteydessä toisiinsa.