Gilbert Borgen-Veland

Dynamisk lenkestruktur med to kategorier

Kode som lar deg lage en wordpress-nettside hvor poster kan kategoriseres både etter f.eks. sted og tema.
<?php
/*
* I've originally written this as part of a site specific plugin for Fritidsbolig.net.
* You can use this as either part of your custom plugin - or directly as copy pasted in
* your child theme's function.php
*
/*

/*
* Adding a new post type
*/
function register_artikkel_post_type() {
    $args = array(
        'labels'    => array(
            'name'               => __( 'Artikler', 'article' ),
            'singular_name'      => __( 'Artikkel', 'article' ),
            'menu_name'          => __( 'Artikler', 'article' ),
            'name_admin_bar'     => __( 'Artikler', 'article' ),
            'add_new'            => __( 'Legg til ny', 'article' ),
            'add_new_item'       => __( 'Legg til ny Artikkel', 'article' ),
            'new_item'           => __( 'Ny artikkel', 'article' ),
            'edit_item'          => __( 'Rediger Artikkel', 'article' ),
            'view_item'          => __( 'Se artikkel', 'article' ),
            'all_items'          => __( 'Alle artikler', 'article' ),
            'search_items'       => __( 'Søk i artikler', 'article' ),
            'parent_item_colon'  => __( 'Overordnede Artikler:', 'article' ),
            'not_found'          => __( 'Ingen artikler funnet.', 'article' ),
            'not_found_in_trash' => __( 'Ingen artikler i papirkurv.', 'article' )
        ),
        'query_var'              => 'articles',
        'rewrite'                => array(
            'slug'               => 'artikkel/%sted%/%tema_kategori%',
            'with_front'         => false
        ),
        'public'                 => true,  // If you don't want it to make public, make it false
        'publicly_queryable'     => true,  // you should be able to query it
        'show_ui'                => true,  // you should be able to edit it in wp-admin
        'has_archive'            => 'artikler',    //true,
        'menu_position'          => 3,
        'show_in_rest'           => true,
        'supports'               => array( 'title', 'editor', 'thumbnail', 'excerpt' ),
    );
    flush_rewrite_rules();

    register_post_type('articles', $args);
}
add_action( 'init', 'register_artikkel_post_type' );

/*
* Adding tema-categories to make it easer to sort
*/
function taxonomies() {
    $taxonomies = array();

    $taxonomies['tema_kategori'] = array(
        'hierarchical'  => true,
        'query_var'     => 'tema-kategori',
        'rewrite'       => array(
            'slug'      => 'tema/kategori'
        ),
        'labels'            => array(
            'name'          => 'Tema',
            'singular_name' => 'Tema',
            'edit_item'     => 'Rediger Tema',
            'update_item'   => 'Oppdater Tema',
            'add_new_item'  => 'Legg til Tema',
            'new_item_name' => 'Legg til Tema',
            'all_items'     => 'Alle tema',
            'search_items'  => 'Søk i tema',
            'popular_items' => 'Populære tema',
            'separate_items_with_commas' => 'Separer tema med komma',
            'add_or_remove_items' => 'Legg til eller fjern tema',
            'choose_from_most_used' => 'Velg blant mest brukte tema',
        ),
        'show_admin_column' => true,
        'show_in_rest'     => true
    );

/*
* Adding sted (places) to make it easier to sort
*/
    $taxonomies['sted'] = array(
            'hierarchical'  => true,
            'query_var'     => 'sted',
            'rewrite'       => array(
                'slug'      => 'sted' 
            ),
            'labels'            => array(
                'name'          => 'Sted',
                'singular_name' => 'Sted',
                'edit_item'     => 'Rediger Sted',
                'update_item'   => 'Oppdater Sted',
                'add_new_item'  => 'Legg til sted',
                'new_item_name' => 'Legg til nytt sted',
                'all_items'     => 'Alle steder',
                'search_items'  => 'Søk i sted',
                'popular_items' => 'Populære steder',
                'separate_items_with_commas' => 'Separer steder med komma',
                'add_or_remove_items' => 'Legg til eller fjern steder',
                'choose_from_most_used' => 'Velg blant mest brukte steder',
            ),
            'show_admin_column' => true,
            'show_in_rest'     => true
        );

/*
* Adding ad-placements sorting
*/
    $taxonomies['nokkelord'] = array(
            'hierarchical'  => true,
            'query_var'     => 'nokkelord',
            'rewrite'       => array(
                'slug'      => 'nokkelord' 
            ),
            'labels'            => array(
                'name'          => 'Nøkkelord',
                'singular_name' => 'Nøkkelord',
                'edit_item'     => 'Rediger nøkkelord',
                'update_item'   => 'Oppdater nøkkelord',
                'add_new_item'  => 'Legg til nøkkelord',
                'new_item_name' => 'Legg til nyrt nøkkelord',
                'all_items'     => 'Alle nøkkelord',
                'search_items'  => 'Søk i nøkkelord',
                'popular_items' => 'Mest brukte nøkkelord',
                'separate_items_with_commas' => 'Separer nøkkelord med komma',
                'add_or_remove_items' => 'Legg til eller fjern nøkkelord',
                'choose_from_most_used' => 'Velg blant mest brukte nøkkelord',
            ),
            'show_admin_column' => true
        );

/*
* Rewriting permalinks to make dynamic placement of posts
*/
    flush_rewrite_rules();

    foreach( $taxonomies as $name => $args ) {
        register_taxonomy( $name, array( 'articles' ), $args );
    }
}
add_action( 'init', 'taxonomies' );

function filter_post_type_link($link, $post)
{
    if ($post->post_type != 'articles')
        return $link;

    if ($cats = get_the_terms($post->ID, 'tema_kategori'))
        $link = str_replace('%tema_kategori%', array_pop($cats)->slug, $link);
    return $link;
}
add_filter('post_type_link', 'filter_post_type_link', 10, 2);

function filter_post_type_link_location($link, $post)
{
    if ($post->post_type != 'articles')
        return $link;

    if ($cats = get_the_terms($post->ID, 'sted'))
        $link = str_replace('%sted%', array_pop($cats)->slug, $link);
    return $link;
}
add_filter('post_type_link', 'filter_post_type_link_location', 10, 2);

function eg_add_rewrite_rules() {
    global $wp_rewrite;
 
    $new_rules = array(
        'artikkel/(tema-kategori|sted)/(.+?)/(tema-kategori|sted)/(.+?)/?$' => 'index.php?post_type=articles&' . $wp_rewrite->preg_index(1) . '=' . $wp_rewrite->preg_index(2) . '&' . $wp_rewrite->preg_index(3) . '=' . $wp_rewrite->preg_index(4),
        'artikkel/(tema-kategori|sted)/(.+)/?$' => 'index.php?post_type=articles&' . $wp_rewrite->preg_index(1) . '=' . $wp_rewrite->preg_index(2)
    );
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action( 'generate_rewrite_rules', 'eg_add_rewrite_rules' );


?>

Lagre eller del artikkel

Picture of Gilbert Borgen-Veland

Gilbert Borgen-Veland

Ti år som markedsfører og webdesigner gir meg god innsikt i hva små bedrifter ønsker. Mange ønsker å lage sine egne nettsider, så her deler jeg info som er nyttig for deg som vil lage dine egne nettsider.

Gilbert
Borgen-Veland

Tlf. 95 200889

Utdannelse:

Bedriftsøkonom, Handelshøyskolen BI

Bachelor i internasjonal Kommunikasjon, HiØ

Hei, jeg heter Gilbert!

I mer enn ti år har jeg arbeidet med webdesign og markedsføring.

Fra og med høsten 2023 tilbyr jeg rimelige nettsider til norske bedrifter og privatpersoner. 

Siden jeg har ingen ambisjoner om å bli rik av dette, men å leve ut drømmen om å lage gode selgende nettsider for fornøyde kunder – kan jeg tilby nettsider til langt under markedspris.

Nettsider

Gode nettsider er ikke bare responsive, raske og oversiktelige – men de leder også mot et mål. En målrettet nettside fører til flere kunder.

Jeg har erfaring fra mer enn 100 nettprosjekter, app-integrasjoner og app-utvikling.

Les mer om hvordan du kan få unike og selgende nettsider til kun 16.000,-

Videoproduksjon

Gode videoer skaper engasjement på egne plattformer og i sosiale medier. 

Jeg tilbyr produksjon animasjonsfilm for bedrifter. Dette innebærer utarbeidelse av manus, animasjon og casting av stemmeskuespillere.

Innhold & Copywriting

Gode tekster lander nye kunder. Med språk og utforming som snakker til din målgruppe vil du få flere konverteringer og bedre synlighet på digitale flater.

Jeg tilbyr tjenester innen tekstproduksjon for nettsider, annonser, nyhetsbrev og markedsmateriell.

Utvalgte prosjekter

Utvalg av prosjekter hvor jeg enten har arbeidet (eller fortsatt arbeider) med design, utvikling eller drift.
Les mer om nettsider til 16.000,- her.

FOTO

Et utvalg av foto i forskjellige sjangre. Trykk på et bilde for mer informasjon.

Du kan også laste ned gratis bilder og illustrasjoner fra denne siden.

Grafisk Design

Enten du skal vise deg fram på messe, starte et nytt prosjekt eller vil fornye eksisterende design, så er det viktig med god og intuitiv design.

Jeg tar oppdrag innen design og utforming av både markedsmateriale, logo- og designuttrykk, nettsider, fotovegger, messemateriell som rollups og backdrops.

Kontakt

Vil du ta en uforpliktende prat om nye nettsider eller annet markedsrelatert? La meg kontakte deg – eller ring meg på 95 200 889!

Tlf. 95 200889
e-post: gilbert@borgen-veland.no