Gæsteblogger og Custom fields i WordPress


Jeg sad i går aftes og prøvede at danne mig et overblik over min iværksætter julekalender, og kom i tanke om et spørgsmål jeg fik fra en af deltagerne:

…Er det ikke lidt misvisende at der står – Skrevet af Lars Bachmann – under indlægget?

Og det har han jo sådan set ret i. Jeg er jo ikke ude på at tage kredit for de gæsteindlæg der kommer her på bloggen, men jeg kunne jo selvfølgelig bare oprette en bruger til at deltagerne? Eller jeg kunne bruge WordPress custom fields.

Jeg Googlede lidt og fandt denne artikel på wpbeginner.com – How to Rewrite Guest Author Name with Custom Fields in WordPress. Den forklarer ganske enkelt hvordan man erstatter navnet på forfatteren, men jeg har brug for også at erstatte beskrivelsen og E-mail (som styrer hvilken gravatar der vises.).

Så her er løsningen på problemet:

Følgende kodeeksempler skal kopieres ind i din functions.php fil i din tema mappe i WordPress. (Husk altid at tage en backup af din functions.php først.)

Erstat forfatter navn

// Replace author name</p>
<p>add_filter( 'the_author', 'guest_author_name' );<br />
add_filter( 'get_the_author_display_name', 'guest_author_name' );</p>
<p>function guest_author_name( $name ) {<br />
global $post;</p>
<p>$author = get_post_meta( $post-&gt;ID, 'guest-author', true );</p>
<p>if ( $author )<br />
$name = $author;</p>
<p>return $name;<br />
}

Erstat forfatter beskrivelse

// replace author description</p>
<p>add_filter( 'the_author_desc', 'guest_author_desc' );<br />
add_filter( 'get_the_author_description', 'guest_author_desc' );</p>
<p>function guest_author_desc( $desc ) {<br />
global $post;</p>
<p>$authordesc = get_post_meta( $post-&gt;ID, 'guest-author-desc', true );</p>
<p>if ( $authordesc )<br />
$desc = $authordesc;</p>
<p>return $desc;<br />
}

Erstat E-mail/Gravatar

// Replace author email</p>
<p>add_filter( 'the_author_email', 'guest_author_email' );<br />
add_filter( 'get_the_author_user_email', 'guest_author_email' );</p>
<p>function guest_author_email( $email ) {<br />
global $post;</p>
<p>$authoremail = get_post_meta( $post-&gt;ID, 'guest-author-email', true );</p>
<p>if ( $authoremail )<br />
$email = $authoremail;</p>
<p>return $email;<br />
}

Når dette er sat op i din functions.php, så tilføjer du blot navn, beskrivelse og E-mail på din gæsteblogger i nogle custom fields i dit indlæg, som på billedet her under.

Lars Bachmann

Iværksætter og Online nørd. Arbejder med WordPress og online markedsføring i min virksomhed Conseo.

Prøv lige at se disse indlæg også!

11 kommentarer til Gæsteblogger og Custom fields i WordPress

  1. Bo Møller siger:

    God post Lars!

    Man kan bruge custom fields til mange spændende ting i WordPress, og hvis man er lidt fokuseret på usability kan man bruge advanced custom fields så det også ser pænt ud. WordPress er jo ikke ligefrem ufatteligt brugervenligt når det kommer til custom fields, men advanced custom fields det du’r bare! 🙂

    Alternativt kan man jo også bare lavet et author-login til forfattere, men custom fields er sgu smart. God post! 🙂

  2. Hej Lars.
    Super godt indlæg!
    Der findes dog et plugin jeg mener der kan løfte denne opgave. Så slipper man for at skulle ændre noget i sine WP filer.
    Det plugin hedder uCan Post og kan findes her:
    Jeg har brugt det det før og det har fint kunnet klare opgaven.

    Glæder mig til at følge med i din kalender 🙂

  3. Christian siger:

    Hej Lars

    Godt indlæg – det er altid rart med inspiration til hvordan man kan optimere sin WP installation. Jeg vil dog nok benytte mig af det plugin som Torben kommer med (eller ihvertfald testen det lidt af) så jeg slipper for at skulle kode noget WP kildefiler. Jeg synes jeg lidt for mange gange har oplevet det er forsvundet eller gået galt 🙂

    /Christian

  4. Lars Bachmann siger:

    Hej, og tak for jeres kommentarer.
    Ucan post kendte jeg ikke, men det ser ud til at det kan bruges. Jeg tror dog de fleste gæstebloggere hellere vil skrive i Word eller direkte i WordPress?

    Bo nævner Advanced custom fields, som er et plugin der giver et brugervenligt interface til at oprette custom fields, og har man ikke lyst til at rode med kode selv, så er det en super løsning. Skulle jeg lave dette setup for en kunde, havde jeg også brugt advanced custom fields.

    God weeekend 🙂

  5. Synes det er et cool lille tip, hvis man har mange gæstebloggere inde over sin side.

    Var det ikke en idé at putte et fallback på? Sådan at hvis du nu ikke indtaster noget, så vil den automatisk tage den nuværende skribents navn og tekst?

    De bedste hilsner
    Frederik

  6. Lars Bachmann siger:

    Det gør den allerede. Hvis disse custom fields er tomme, så tager den bare de almindelige bruger oplysninger. Hvis ikke de er tomme, så erstatter den standard oplysningerne med dem der er tastet ind.

  7. Andreas Linde siger:

    Super indlæg Lars – meeeeen jeg plejer bare at oprette en profil. Det er altså lige hurtigt! Men man kan jo lave en masse andet spændende med custom fields :=)

  8. Lars Bachmann siger:

    Hvis det bare var et enkelt gæsteindlæg jeg skulle have, så have jeg sikkert også bare oprettet en bruger til den pågældende. Men nu er det 24 forskellige forfattere, så syntes jeg personligt dette var en bedre løsning.

    Ulempen i dette tilfælde er at “skribenter” kan se oversigten over alle indlæg i kontrolpanelet, og da de forskellige “låger” er en hemmelighed, så vil de blive afsløret 😉

  9. Andreas Linde siger:

    Ja okay!

    Ah ja :=) Så må vi håbe at de ikke videregiver informationen 😉

  10. Lars Bachmann siger:

    Fik vist formuleret mig forkert i forrige kommentar. Som jeg gør det nu med custom fields, har gæstebloggerne slet ikke adgang til bloggen. De sender deres materiale som txt, docx, eller lignende, så der er ingen problemer. Jeg laver indlægget og bruger custom fields til at definere hvem der har skrevet det. 🙂

    Hvis de havde haft en skribent-rolle, så ville de kunne se alle indlæg i kontrolpanelet, inklusiv dem som ikke er udgivet endnu, og dermed ville jeg afsløre de andre “låger”.

  11. Tim Janson siger:

    Gal det er smart. Og nej du har helt ret. Selvfølgeligt ønsker man ikke at tage kredit for det. Tak for den gode artikel Lars, havde ledte med lys og lygte efter den 🙂

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *