Kategorier
localdev PHP Tools Wordpress

Lando lamp opsætning

Docker desktop skal være installeret og startet.

Config filen placeres i roden af projektet. Webroot: web, er til bedrock setup.

Tilføj dev domæne i hosts filen på 127.0.0.1 (sudo nano /etc/hosts)

Kør lando start i terminalen

// .lando.yml
name: projektnavn
recipe: lamp
config:
  webroot: web
  php: '5.6'
  database: mysql
proxy:
  appserver:
    - domain.local (for https use domain.lndo.site)

Docs: https://docs.devwithlando.io/tutorials/lamp.html

Kategorier
Composer PHP

Composer reminder

`composer require` = Hent pakke og inkluder denne i composer.json
`composer install` = Installer alle pakker defineret i composer.lock
`composer update` = Opdater pakker og generer ny composer.lock

Kategorier
PHP Timber Twig Wordpress

Tilføj custom filter til Timber/Twig

Nedenstående eksempel tilføjer et filter som kan bruges i twig templaten sådan:

{{ field.name | truncate_title }}

add_filter('get_twig', 'add_to_twig');

function add_to_twig($twig)
{
    $twig->addFilter('truncate_title', new Twig_Filter_Function('truncate_title'));
    return $twig;
}

function truncate_title($content)
{
    $content = Timber\TextHelper::trim_characters($content, 45);
    return $content;
}
Kategorier
PHP phpMyAdmin SQL

SQL til oprettelse af tabel i phpMyAdmin

I eksemplet oprettes en tabel til brugere. Samme fremgangsmåde kan bruges i andre sammenhænge.

“user_name” er brugerens rigtige navn, mens “user_uid” er brugernavn.

CREATE TABLE users (
   user_id int(11) not null AUTO_INCREMENT PRIMARY KEY,
   user_name varchar(256) not null,
   user_email varchar(256) not null,
   user_uid varchar(256) not null,
   user_pwd varchar(256) not null
);
Kategorier
CMS PHP Wordpress Wordpress plugins

Tilføj custom post type til søgning i WordPress

<?php function my_remove_default_et_pb_custom_search() { 
remove_action( 'pre_get_posts', 'et_pb_custom_search' ); 
add_action( 'pre_get_posts', 'my_et_pb_custom_search' ); 
} 
add_action( 'wp_loaded', 'my_remove_default_et_pb_custom_search' ); 

function my_et_pb_custom_search( $query = false ) { if ( is_admin() || ! is_a( $query, 'WP_Query' ) || ! $query->is_search ) {
		return;
	}
	if ( isset( $_GET['et_pb_searchform_submit'] ) ) {
		$postTypes = array();
		if ( ! isset($_GET['et_pb_include_posts'] ) && ! isset( $_GET['et_pb_include_pages'] ) ) $postTypes = array( 'post' );
		if ( isset( $_GET['et_pb_include_pages'] ) ) $postTypes = array( 'page' );
		if ( isset( $_GET['et_pb_include_posts'] ) ) $postTypes[] = 'post';
		
		/* BEGIN Add custom post types */
		$postTypes[] = 'product';
		/* END Add custom post types */
		
		$query->set( 'post_type', $postTypes );
		if ( ! empty( $_GET['et_pb_search_cat'] ) ) {
			$categories_array = explode( ',', $_GET['et_pb_search_cat'] );
			$query->set( 'category__not_in', $categories_array );
		}
		if ( isset( $_GET['et-posts-count'] ) ) {
			$query->set( 'posts_per_page', (int) $_GET['et-posts-count'] );
		}
	}
}
Kategorier
CMS PHP Wordpress Wordpress plugins

Inkluder ekstern fil i theme functions eller plugin fil

<span class="pl-k">require_once</span> ( plugin_dir_path(<span class="pl-c1">__FILE__</span>) <span class="pl-k">.</span> <span class="pl-s"><span class="pl-pds">'</span>wp-job-cpt.php<span class="pl-pds">'</span></span> );
Kategorier
CMS PHP Wordpress

Vis alle tilgængelige terms i custom taxonomy

Dette viser alle tilgængelige taxonomy terms og ikke kun de valgte. (Alle dem som er i brug på en post). Er der mere end 1, adskilles de med en skråstreg.

<?php 
    $terms = get_terms("custom_taxonomy_navn");
    $count = count($terms);
    $i = 0; 
    if ( $count > 0 ){
        foreach ( $terms as $term ) {
            if ( $i == 0) {
                echo $term->name;
            } else {
            echo " / " . $term->name;
            }
            $i++;
            }
} 
?>
Kategorier
PHP Wordpress

WordPress snippets

WordPress snippets til tema udvikling

http://www.wpfunction.me/

Kategorier
CMS PHP Wordpress

WordPress post loop på page templates

Guide til at lave post loop på side templates findes på dette link:

http://callmenick.com/post/custom-wordpress-loop-with-pagination

Kategorier
CMS PHP Wordpress

WordPress load mobilmenu

Samme logik kan også bruges på andre elementer

if ( wp_is_mobile() ) {
     wp_nav_menu( array( 'menu' => 'mobile-menu' ) );
} else {
     wp_nav_menu( array( 'menu' => 'desktop-menu' ) );
}