WordPress: Login Logo und Url ändern

sl-loginVor allem bei Kundenprojekten ist es schön, wenn man den Login von WordPress anpasst.

Statt dem Standard WordPress Logo und der Verlinkung zu WordPress.org kann man schnell und einfach seine eigenen Inhalte nutzen. Die CI wirds danken.

Die Umsetzung ist denkbar einfach, nur den kurzen Schnipsel in die functions.php eures Themes und ihr genießt einen neuen Login.

// Css für .logo h1 a wird überschrieben. 
// Breite auf 300px gesetzt, Hintergrundbild verändert und als Background-size Contain verwendet. 
   function sl_login_logo() {
    echo '<style type="text/css">.login h1 a { background-image:url("https://schnipsellager.de/wp-content/uploads/2015/08/sl-login-logo.png") !important; width: 300px; background-size: contain; } </style>';
   }
   add_action('login_head', 'sl_login_logo');

   // Login Url wird auf die Blogurl geändert. (Original: WordPress.org)
   function change_wp_login_url() {
   echo bloginfo('url'); 
   }
   // Der Titel des Hrefs wird angepasst. 
   //Nun steht euer Blogname Statt WordPress. org
   function change_wp_login_title() {
    echo get_option('blogname'); 
   }
   
   add_filter('login_headerurl', 'change_wp_login_url');
   add_filter('login_headertitle', 'change_wp_login_title');

[WordPress] Shortcodes in Widgets nutzen

Standardmäßig sind die praktischen Shortcodes in den Sidebar Widgets nicht ausführbar. Sehr schade, denn die kleinen Code schnipsel ermöglichen doch allerhand tolle Spierelerein. So können allerhand Plugins durch die Codes Inhalte ausgeben und lassen sich so perfekt positionieren.

Die Abhilfe:

Die Lösung ist denkbar einfach, denn die Macher von WP haben alles dafür vorbereitet, dass die Shortcodes eben auch in den Widgets ausführbar sind.

add_filter('widget_text', 'do_shortcode');

Einfach diese Zeile in die functions.php eures Themes kopieren und der Shortcode kann ich ein normales „Text Widget“ eingefügt werden.

 

WordPress: Shortcode für Ausgabe von Custom Post Type erstellen

WordPress Custom Post Types sind eine geniale Sache, schnell wird durch diese aus dem einfachen WordPress Baustein ein mächtiges und angepasstes Portal.

Angenommen ihr wollt z.b. die Sponsoren eures Fußballvereins einfach verwalten und an speziellen Stellen einen dieser ausgeben, dann bietet es sich an dafür einen Shortcode mit integrierter Abfrage zu erstellen. Dann könnt ihr an beliebiger Stelle einfach den Shortcode

[sponsor-listing anzahl="3"]

einfügen und bekommt dort 3 zufällige Sponsoren ausgegeben. Damit das ganze Funktioniert sollte natürlich der Entsprechende Custom Post Type vorhanden sein.

// Register Custom Post Type
function sl_sponsoren_register() {

	$labels = array(
		'name'                => 'Sponsoren',
		'singular_name'       => 'Sponsor',
		'menu_name'           => 'Sponsoren',
		'name_admin_bar'      => 'Sponsoren',
		'parent_item_colon'   => 'Sponsor',
		'all_items'           => 'alle Sponsoren',
		'add_new_item'        => 'neuen Sponsor erstellen',
		'add_new'             => 'Neuen Sponsor',
		'new_item'            => 'neuer Sponsor',
		'edit_item'           => 'Sponsor bearbeiten',
		'update_item'         => 'Sponsor Speichern',
		'view_item'           => 'Sponsor anzeigen',
		'search_items'        => 'Sponsor suchen',
		'not_found'           => 'nichts gefunden',
		'not_found_in_trash'  => 'nichts gefunden',
	);
	$args = array(
		'label'               => 'Sponsor',
		'description'         => 'Sponsoren',
		'labels'              => $labels,
		'supports'            => array( ),
		'hierarchical'        => false,
		'public'              => true,
		'show_ui'             => true,
		'show_in_menu'        => true,
		'menu_position'       => 5,
		'show_in_admin_bar'   => true,
		'show_in_nav_menus'   => true,
		'can_export'          => true,
		'has_archive'         => true,		
		'exclude_from_search' => false,
		'publicly_queryable'  => true,
		'capability_type'     => 'page',
	);
	register_post_type( 'sponsor', $args );

}
add_action( 'init', 'sl_sponsoren_register', 0 );

Der Posttype sollte in eurer functions.php registiert sein (oder natürlich in einem Plugin).

In der functions.php erstellen wir nun einen Shortcode, der es uns ermöglicht eine Query durch unsere Sponsoren auszuführen:

add_shortcode( 'sponsor-listing', 'sl_sponsorlisting' );
function sl_sponsorlisting( $atts ) {
    ob_start();
 
    // Attribute holen
    extract( shortcode_atts( array (
        'anzahl' => 'anzahl'
      ), $atts ) );
 
    $options = array(
        'post_type' => 'sponsor',
        'orderby' => 'rand',
        'posts_per_page' => $anzahl,
    );
    $query = new WP_Query( $options );
    if ( $query->have_posts() ) { 
             the_content(); 
   
        return = ob_get_clean();
    }
}

[Mysql] eigene Sortierung – Order by Field

Datenbanken sind Klasse – vor allem die Möglichkeiten Datensätze direkt in die richtige Reihenfolge zu bringen.
Und selbst wenn einem einmal nicht die Standart Sortierung von groß nach klein oder von klein nach groß eignet so bietet Mysql noch das I-Tüpfelchen.
Sort by field

SELECT * FROM aufstellung ORDER by 
        Field(spielposition, 'Torwart', 'Abwehr', 'Mittelfeld', 'Angriff');

 
Damit selektieren wir alle Spieler auf der Datenbank Aufstellung und sortieren sie nach der Reihenfolge der Position wie sie auf dem Platz vorkommen.

Mysqli Spickzettel

MySQLI ist eine feine Sache und im Vergleich zur alten MySQL Unterstützung in PHP ein echter Traum. Anbei ein paar nützliche Beispiele.

Verbindung erstellen

$con = new mysqli("localhost", "testuser", "testpassword", "testdatenbank");

 

Datensätze holen

$res = $con->query("SELECT * FROM irgendwas");
while($row = $res->fetch_object()) {
   echo $row->name;
}

 

Datenbank wechseln

$con->select_db("andereDB");

 

Fehler ausgeben

$con->error;

 

Anzahl an Einträgen ausgeben

$res = $con->query("SELECT * FROM irgendwas");
$anzahl = $res->num_rows;

 

Letzten Auto Increment Wert ausgeben

$con->insert_id;

 

PHP:Auf String in String prüfen

PHP bietet intern keine „direkte“ Funktion zum Prüfen ob ein String in einem String vorhanden ist, wie Java (contains) und co.

Abhilfe schafft die Prüfung nach der Position mit strpos, wenn diese nicht false ist, befindet sich der String im String.

if(strpos($suche, $string) !== false) { 
   echo "String ist vorhanden; 
}

Wichtig: Verwendet unbedingt !==, da hierbei auch überprüft wird ob der Typ identisch ist. Ansonsten würde Position 0 auch als false interpretiert werden.