⚈ Kuopassa.net

Lisää kertomuksia netistä. 摆烂

Aika kiehtova ilmiö WordPressin custom fieldseissä

WordPressillä toimiva nettisivusto, jossa hyödynnetään useilla alasivuilla custom fields -kenttiä, on eräillä listaussivuilla päättänyt tuoda custom fields -kenttien arvoja esiin myös sellaisilla sivuilla, joissa kyseisiä kenttiä ei ole ollenkaan käytössä. Ilmiö on omalaatuinen. En ole kovin paljon peuhannut WP-sivustojen kanssa, mutta luulen ymmärtäväni miten custom fieldsit pelaavat.

WordPress-sivustolla listataan kategoriasivulla vaikkapa viisi artikkelia, joista neljässä on kotisivujen URL-osoitetta varten custom fields -kenttä nimeltään kotisivut. Tähän mennessä alku hyvin, kaikki hyvin. Ongelmaksi syntyi kun viidennessä artikkelissa ei ollut ollenkaan custom fields -kenttää, johon olisi kotisivujen osoite laitettu. Sitä tietoa ei siis oltu tallennettu artikkeliin laisinkaan. Jostain syystä kategoriasivulla tuo viides artikkeli poimi sitä edellisen artikkelin kotisivut-kentän osoitteen. Sisältöä siis teleportattiin neljännestä artikkelista viidenteen.

En ymmärrä mistä se voi johtua.

Sain purukumivirityksellä kotisivut-kentän piiloon siitä viidennestäkin artikkelista asettamalla ko. kentän arvoksi yhden väliviivan. Väliviivan pystyin sen jälkeen PHP-koodilla tunnistamaan templatesta ja reagoimaan sopivalla tavalla. Tässä alapuolella näkyy vielä pelkistetty koodiesimerkki siitä, miten menettelin. Ehkä siitä on apua jollekulle.

$kotisivut = get_post_meta($post->ID, 'kotisivut', true);
if ($kotisivut) {
if ($kotisivut != '-') {
$kotisivut_html = 'Kotisivut: <a href="'.$kotisivut.'" rel="external">'.$kotisivut.'</a>';
}
else {
$kotisivut_html = NULL;
}
}
echo $kotisivut_html;

Tietoa kirjoittajasta