Herbstaufnahme der Theresienwiese mit und ohne Sonnenbrille | Johannes Ulrich Gehrke

Herbstaufnahme der Theresienwiese mit und ohne Sonnenbrille

Analoger Filter für Handybilder - Auf meinem Weg um die Theresienwiese fand ich die Farben so schön. Da habe ich schnell eine Handyaufnahme mit meinem Smartphone gemacht. Ich kam auf die Idee als Filter einfach meine Sonnenbrille mal vor die…

Liebe Bäcker: So muss ein belegtes Brötchen aussehen! | Johannes Ulrich Gehrke

Liebe Bäcker: So muss ein belegtes Brötchen aussehen!

Das Frühstücksbrötchen war so geil - da hab ich direkt mal ein Foto von gemacht. Außerdem habe ich das Bild direkt noch an weitere Brötchen Freunde per Whatsapp verschickt. Ich habe ein Reddit Beitrag pfostiert zu dem Thema und überlege…

<?php

/*
 *  SEITENNAVIGATION MIT SEITENZAHLEN
 *
 *  Gibt einen HTML Strink zurück mit Seitenzahlen als Links
 *  in einem DIV-Wrapper 
 */
function jg_pagination_numbered( $is_nofollow = false ) {
	global $wp_query;

	/*
	 *  TEMPLATES
	 */
	$tpl_item = "
		<a href=\"%URL%\" class=\"f-pagination__page-item %ACTIVE%\" %NOFOLLOW% >%NUMBER%</a>
	 
	";

	$nofollow     = " rel=\"nofollow\" ";
	$class_active = " active ";

	/*
	 *  GET DATA
	 */
	$max_pages      = $wp_query->max_num_pages;
	// Aktuelle Seite: Seite 0 = Seite 1
	$current_page   = ( $wp_query->query_vars['paged'] ) ? $wp_query->query_vars['paged'] : 1;
	
	// Schreibe alle Seiten auf ein Array
	$items = [];
	for ( $i=1; $i <= $max_pages ; $i++ ) { 
		$items[$i] = [
			'url'        => get_pagenum_link( $i, false ),
			'is_current' => ( $i == $current_page ) ? true : false,
		];
	};
	
	/*
	 *  BUILD HTML
	 */
	$items_html = "";
	foreach ( $items as $key => $item) {
		// Alle Items zu einem Item-HMTL-String zusammenfügen	
		$tpl_data = [
			'%NUMBER%'   => $key,
			'%URL%'      => $item['url'],
			'%ACTIVE%'   => ( $item['is_current'] ) ? " active " : "",
			'%NOFOLLOW%' => ( $is_nofollow ) ? $class_active : "",
		];
		$items_html .= strtr( $tpl_item, $tpl_data );
	};
	
	
	return $items_html;
	
};

Seitenzahlen-Navigation für WordPress

Für Besucher und für SEO ist es oft wichtig eine Seitenzahlen-Navigation zu haben. Damit ist es möglich über die Pagination direkt auf die Zielseite zu kommen. Und es hält für Google die Seitenhierarchie flach. Wordpress ist traditionell eine Plattform zum…

Gesundes Frühstück im Office für mich & die Kollegen | Johannes Ulrich Gehrke

Gesundes Frühstück im Office für mich & die Kollegen

Hin und wieder ist es schön morgens im Office ein Frühstück zu haben - Wenn es dann auch noch Gesund ist umso besser! Ich war heute morgen wieder im Edeka, ehemals Tengelmann, und habe Weintrauben, Kohlrabi und Radieschen gekauft. Letzteres…

Sommerbilder aus Magdeburg | Johannes Ulrich Gehrke

Sommerbilder aus Magdeburg

Wir sind mit Andreas noch ein wenig durch die Stadt gelaufen und ich habe ein paar Sommerbilder gemacht. Beim spazieren durch Magdeburg, sahen wir Ecken, die wir vorher nie entdeckt hatten. Daher bot es sich an, hin und wieder das…

Magdeburg wird mit Freiheit geschrieben | Johannes Ulrich Gehrke

Magdeburg wird mit Freiheit geschrieben

Der Blick aus dem Hotel über den Acker Richtung Horizont und in der Luft liegt der Geruch von Freiheit. Bin beruflich wieder in Magdeburg und haben diesmal ein Hotel weiter draußen. Man kann zwar nicht abends um die Häuser ziehen,…

Datenbank Perfomance für WordPress erhöhen mit mySQL Cache | Johannes Ulrich Gehrke

Datenbank Perfomance für WordPress erhöhen mit mySQL Cache

Die meisten Web-Server operieren bereits mit dem sehr perfomanten PHP7 und aktiviertem Objekt-Cache - Dadurch wird immer öfter die Datenbank auf dem Server zum so genannten Bottleneck (Flaschenhals) für die Perfomance. Hier kann es helfen zu prüfen ob der mySQL…

<?php

/*
 *  REGISTRIERT NEUE NUTZER ROLLEN 
 *  FÜR KUNDEN / CLIENTS
 * 
 *  Client Master > Kann alles vom Editor + Nutzer, Menüs, Widgets & Customzier bearbeiten
 *  Client User   > Kann alles vom Editor + Menüs & Widgets bearbeiten
 * 
 *  Clients können nichts updaten oder selbst installieren
 * 
 */
function user_role_clients() {
	
	// *** ROLLE: CLIENT MASTER USER ***
	// Prüfen ob "Client Master User" bereits existiert
	if ( !get_role( 'client_master_user' ) ) {
		$user_capabilities = get_role( 'editor' )->capabilities; // Basis ist die 'Editor'-Rolle
		$user_capabilities = array_merge(
			$user_capabilities,
			// Zusätzliche Optionen hier hinzufügen
			array(
				// Client Master kann jetzt Nutzer bearbeiten
				'list_users'	=> true,
				'create_users'  => true,
				'edit_users'	=> true,
				'promote_users' => true,
				'delete_users'  => true,
				'remove_users'  => true,
				
				// Client Master kann Menüs & Widgets bearbeiten
				'edit_theme_options' => true,
				
				// Client Master kann in das Theme>Custumize Menü gehen
				'customize' => true,
			)
		);
		add_role( 'client_master_user', 'Client Master-User', $user_capabilities ); // Nutzer-Rolle hinzufügen
	}
	
	// *** ROLLE: CLIENT USER ***
	// Prüfen ob "Client  User" bereits existiert
	if ( !get_role( 'client_user' ) ) {
		$user_capabilities = get_role( 'editor' )->capabilities; // Basis ist die 'Editor'-Rolle
		$user_capabilities = array_merge(
			$user_capabilities,
			// Zusätzliche Optionen hier hinzufügen
			array(
				// Client User kann Menüs & Widgets bearbeiten
				'edit_theme_options' => true,
			)
		);
		add_role( 'client_user', 'Client User', $user_capabilities ); // Nutzer-Rolle hinzufügen
	}
	
}
	

add_action( 'admin_init', 'user_role_clients' );

Neue Nutzerrollen für Kunden im WordPress anlegen

Wenn man eine Wordpress-Seite einem Kunden übergibt, muss man für diesen meistens auch einen Nutzer anlegen. Es kann sinnvoll sein dem Client eine neue spezielle Kunden-Rolle zu zuweisen. Der Kunde bekommt natürlich immer einen Account zu seiner eigenen Wordpress-Seite. Jeder…

Der Münchner Sommer wird besser – wir müssen nur träumen! | Johannes Ulrich Gehrke

Der Münchner Sommer wird besser – wir müssen nur träumen!

Am Weges Rand, lag ein Mann, dösend und entspannt und schaute ruhig den Himmel an. Und dann kam der Johannes vorbei und macht einfach ein Foto! Ich fand es vom Motiv her sehr schön und irgendwie strahlt das auch ein…

<?php
//
// FUNCTIONS
//

$post_id    = get_the_id();
$blog_title = get_bloginfo( 'name' );

$thumbnail_id        = get_post_thumbnail_id( $post_id );
$thumbnail_html      = lh_attached_thumbnail( $thumbnail_id, $post_id );

//
// TEMPLATE
//
?>
	<article>
		<div class="uk-grid post f-post f-teaser">
			<div class="uk-width-medium-2-3 f-post__media f-teaser__media">
				<?php echo $thumbnail_html; ?>
			</div>
			<div class="uk-width-medium-1-3 f-post__media f-teaser__media">
			 	<h2>
			 		<a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute();?> | <?php echo $blog_title; ?>">
			 			<?php the_title(); ?>
			 		</a>
			 	</h2>
			</div>
		</div>
	</article>
 	

Übersichtliche Struktur für WordPress-PHP Code

Ordnung in Template- & Funktions-Dateien zu halten ist bei größeren Projekten schwer und bei längeren Projekt enorm wichtig. Um Ordnung zu halten trenne ich meine Dateien in 'Daten' & 'Template'. Oft wird man mit fremden Templates oder eigenen Templates aus…

1 2 3 4 5