Kategorie: Snippets

Snippets sind kleine Code-Schnipsel für eurer WordPress-Projekt. Im Normalfall werden diese in eurer functions.php untergebracht. Sollte ein Snippet eine andere Form des Einbaus benötigen, findet ihr Informationen dazu im jeweiligen Snippet-Beitrag.

Snippet: Varianten mit „Ab“-Preis darstellen

Dieses Snippet wandelt die Anzeige von Varianten-Preisen in „ab XX“ statt der üblichen Preis-Spanne um:

	function variation_price_format( $price, $product ) {
		// Main Price
		$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
		$price  = $prices[0] !== $prices[1] ? sprintf( __( 'ab: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

		// Sale Price
		$prices = array(
			$product->get_variation_regular_price( 'min', true ),
			$product->get_variation_regular_price( 'max', true )
		);
		sort( $prices );
		$saleprice = $prices[0] !== $prices[1] ? sprintf( __( 'ab: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

		if ( $price !== $saleprice ) {
			$price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';
		}

		return $price;
	}

Snippet: Limitierung von Suchergebnissen

Mit diesem kurzen Snippet könnt ihr die Anzahl der Suchergebnisse die auf der search.php ausgespielt werden beeinflussen:

add_filter('pre_get_posts', 'limit_posts_per_search_page');
function limit_posts_per_search_page() {
if ( is_search() )
set_query_var('posts_per_archive_page', 20);
}

Snippet: Adminbar im Frontend entfernen

Mit diesem Snippet könnt ihr die Administrations-Bar oben ausblenden, wenn ihr euch im Frontend eurer Website befindet. Das kann z.B. sinnvoll sein, wenn man seinen Kunden einen Administrator-Account zur Verfügung stellt und die Möglichkeiten (etwa zum Löschen des Caches) limitieren möchte.


add_filter( 'show_admin_bar', '__return_false' );

Snippet: Umleitung nach Registrierung

Wenn sich ein Nutzer auf eurer Seite registriert wird dieser normalerweile einfach auf eure wp-login.php umgeleitet. Manchmal möchte man den neuen User nicht direkt den Ort des Administrationsbereich hinweisen, oder ihn in ein eigenes Backend o.Ä. weiterleiten. Dafür braucht ihr keine umfangreiche Membership-Lösung sondern nur dieses Snippet:


add_filter( 'registration_redirect', 'wps_registration_redirect' );
function wps_registration_redirect() {
return home_url( '/finished/' );
}

Snippet: Mindestlänge für Kommentare

Hiermit gewährleistet ihr eine minimale Kommentar-Länge in euren Beiträgen. Das macht z.B. Sinn wenn eurer Blog von regen Diskussionen lebt und Einzeiler-Antworten erfahrungsgemäß weniger zur produktiven Diskussionsförderung beitragen.


add_filter( 'preprocess_comment', 'minimal_comment_length' );
function minimal_comment_length( $commentdata ) {
$minimalCommentLength = 20;
if ( strlen( trim( $commentdata['comment_content'] ) ) < $minimalCommentLength ){
wp_die( 'All comments must be at least ' . $minimalCommentLength . ' characters long.' );
}
return $commentdata;
}

Snippet: Die Anzahl an Kommmentaren im Beitrag zeigen

Mit diesem Snippet könnt ihr die Anzahl an Kommentaren zum aktuellen Beitrag ausgeben lassen. Bei entsprechender Anpassung der ID lässt sich diese Snippet natürlich auch auf der Startseite oder Kategorieübersichten problemlos einsetzen.


$commcount = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '1'");

if (0 < $commcount) $commcount = number_format($commcount);
echo "Our users have made ".$commcount." comments, care to join in?";

Snippet: Die beliebtesten Beiträgen anzeigen

Hiermit erstellt ihr eine Liste von Links zu euren beliebtesten Beiträgen. „Beliebtest“ heißt in diesem Fall, die Beiträge mit den meisten vorhandenen Kommentaren.


$args=array(
'cat' => 3,
'orderby' => 'comment_count',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 6,
'caller_get_posts'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);

if( $my_query->have_posts() ) { ?>
<ul>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php }

wp_reset_query();

Snippet: Individueller Inhalt unter jedem Beitrag

Mit diesem Snippet platziert ihr euren gewünschten Inhalt unter jeden Beitrag eures Blogs. Das kann so ziemlich alles sein. Eine Umfrage, ein Newsletter-Signup, Links zu euren E-Books oder sonstigen Aktionen und Inhalten.


function add_post_content($content) {

if(!is_feed() &amp;&amp; !is_home()) {
$content .= '<p>This article is copyright &copy; '.date('Y').'&nbsp;'.bloginfo('name').'</p>';
}

return $content;
}
add_filter('the_content', 'add_post_content');

Snippet: Minimale Länge von Beiträgen

Minimale Länge von Beiträgen. Ihr arbeitet mit Gastautoren oder habt meherere Mitarbeiter di in eurem Corporate-Blog Beiträge schreiben und veröffentlichen? Eine SEO-Schulung ist schnell vergessen oder wurde nie durchgeführt. Mit diesem Snippet legt ihr eine Mindestlänge für Beiträge fest:


function minWord($content){

global $post;
$num = 100; //set this to the minimum number of words
$content = $post->post_content;

if (str_word_count($content) < $num) wp_die( __('Error: your post is below the minimum word count.') ); } add_action('publish_post', 'minWord');

Übrigens ganz ähnlich könnt ihr verfahren, wenn ihr den Beitragstitel beeinflussen möchtet. Im unteren Beispiel habe ich eine maximale Länge von 10 Wörtern für den Titel festgelegt:

function maxWord($title){ 
 
global $post;
$title = $post->post_title; 
 
if (str_word_count($title) >= 10 ) //set this to the maximum number of words
wp_die( __('Error: your post title is over the maximum word count.') ); 
} 
add_action('publish_post', 'maxWord'); 

Snippet: Ein eigenes Dashboard-Widget

Mit diesem Snippet erstellt ihr ein eigenes Dashboard-Widget für eure WordPress-Seite. Im Beispiel haben wir einige Kontaktinformationen und einen Link hinterlegt:


add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
function my_custom_dashboard_widgets() {

global $wp_meta_boxes;
wp_add_dashboard_widget('custom_help_widget', 'Theme Support', 'custom_dashboard_help');
}
function custom_dashboard_help() {
echo '<p>Welcome to Custom Blog Theme! Need help? Contact the developer <a href="mailto:yourusername@gmail.com">here</a>. For WordPress Tutorials visit: <a href="https://patrickposner.de" target="_blank">This Page!</a></p>';
}

Snippet: Ein Favicon einbinden

Mit diesem Snippet fügt ihr euer eigenes Favicon ohne zu Hilfenahme eines Plugins hinzu:


function blog_favicon() {
echo '<link rel="Shortcut Icon" type="image/x-icon" href="'.get_bloginfo('wpurl').'/favicon.ico" />';
}
add_action('wp_head', 'blog_favicon');