Kontaktangaben im Impressum für alle Websites zentral verwalten

Als mu-plugin realisiert wird das Impressum zentral für alle Websites einer Multisite-Umgebung nutzbar. Der Shortcode impressum integriert das Impressum. Mit der Variable impressum email=“name@nulltld.de“ kann die E-Mail-Adresse angepasst werden. Sinnvoll ist diese Lösung insbesondere dann, wenn über die Websites hinweg die gleichen Kontakdaten gelten. Sie kann z.B. um dann ebenfalls zentral verwaltete Datenschutzhinweise erweitert werden.

function shortcode_imprint($atts, $content = null) {
 // Die hier angegebene E-Mail-Adresse wird angezeigt, wenn die Variable email bei Eingabe des Shortcodes nicht gesetzt wird.
 extract(shortcode_atts(array( 'email' => '2013@nullwpdoc.de' ), $atts));
 $return = '<p>Max Mustermann<br />
 Musterstra&szlig;e 5<br />
 43524 Musterhausen<br />
 Telefon 4531 4564761<br />
 E-Mail ' . $email . '</p>';
 return $return;
 }
add_shortcode('impressum', 'shortcode_imprint');

Benutzerdefinierte Admin-Toolbar mit Abmelde-Link und Suche im Backend

Plugin zur Veränderung der Admin-Toolbar:

  • Das WordPress-Logo, das Profil-Menü und die reguläre Suchfunktion im Frontend werden entfernt
  • Eine Suchfunktion im Frontend und Backend, ein „Abmelden“-Link und ein „Profil bearbeiten“-Link unter „Meine Seiten“ werden hinzugefügt

<?php
/*
Plugin Name: Custom Adminbar
Plugin URI: http://wpdoc.de/?p=214
Description: Benutzerdefinierte Adminbar mit Abmelde-Link und Suche im Backend.
Author: Johannes Ries
Author URI: http://johannesries.de
Version: 1.0
*/

function custom_admin_bar() {
$form = '<form action="' .esc_url( admin_url('edit.php') ). '" method="get" id="adminbarsearch">';
$form .= '<input name="s" tabindex="1" type="text" value="" maxlength="54" />';
$form .= '<input type="submit" value="' .__('Search'). '"/>';
$form .= '</form>';

global $wp_admin_bar;
$wp_admin_bar->remove_menu('wp-logo');
$wp_admin_bar->remove_menu('my-account');
$wp_admin_bar->remove_menu('search');
$wp_admin_bar->add_menu( array(
'id'    => 'wp-custom-edit-profile',
'title' => 'Mein Profil bearbeiten',
'parent'=>'my-sites',
'href'  => self_admin_url('profile.php'),
'meta' => array('title' => 'Passwort, E-Mail-Adresse und weitere Details &auml;ndern')
));
$wp_admin_bar->add_node( array(
'parent' => 'top-secondary',
'id'    => 'custom-logout',
'title' => 'Abmelden',
'href'  => wp_logout_url(),
'meta' => array('title' => 'Abmelden')
) );
$wp_admin_bar->add_menu(
array(
'parent' => 'top-secondary',
'id' => 'custom-search',
'title' => $form,
'meta' => array('class' => 'admin-bar-search')
)
);
}

add_action(
'plugins_loaded',
function () {
if ( is_admin_bar_showing() ) {
add_action('wp_before_admin_bar_render','custom_admin_bar');
}
}
);
?>

Aktualisierungsbenachrichtigung nur für Nicht-Admins MU/Singlesite

Plugin oder via general-security-usability.php

// Aktualisierungshinweis nur für Admins in Singlesite-Umgebung bzw. nur für Superadmins in Multisite-Umgebung
add_action(
 'plugins_loaded',
 function () {
 if (( is_multisite() && !current_user_can('manage_network') ) || ( !is_multisite() && !current_user_can('create_users')))  {
 add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 );
 add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );
 add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) );
 }
 }
);

WordPress Daten, Zahlen, Fakten

Vorheriger und nächster Beitrag-Link mit Artikelbild und Zufallsbild als Fallback

single.php

<div id="prev_post">
 <?php
 $prev_post = get_previous_post('true');
 if (!empty( $prev_post )): ?>
 <a href="<?php echo get_permalink( $prev_post->ID ); ?>" title="<?php $prev_post->post_title; ?>" ><?php if ( has_post_thumbnail( $prev_post->ID ) ) { echo get_the_post_thumbnail($prev_post->ID, 'homepage-thumbnail'); } else { ?>
 <img src="<?php bloginfo('template_directory'); ?>/images/artikelbild/start/<?php echo mt_rand(1, 5); ?>.jpg" alt="<?php $prev_post->post_title; ?>" /><?php } ?></a>
 <p><a href="<?php echo get_permalink( $prev_post->ID ); ?>"><?php echo $prev_post->post_title; ?></a></p>
 <?php endif; ?>
</div>

<div id="next_post">
 <?php
 $next_post = get_next_post('true');
 if (!empty( $next_post )): ?>
 <a href="<?php echo get_permalink( $next_post->ID ); ?>" title="<?php $next_post->post_title; ?>" ><?php if ( has_post_thumbnail( $next_post->ID ) ) { echo get_the_post_thumbnail($next_post->ID, 'homepage-thumbnail'); } else { ?>
 <img src="<?php bloginfo('template_directory'); ?>/images/artikelbild/start/<?php echo mt_rand(1, 5); ?>.jpg" alt="<?php $next_post->post_title; ?>" /><?php } ?></a>
 <p><a href="<?php echo get_permalink( $next_post->ID ); ?>"><?php echo $next_post->post_title; ?></a></p>
 <?php endif; ?>
</div>

style.css

#next_post { width:290px; float:right; margin:20px 20px 20px 0; }
#prev_post { width:290px; float:left; margin:20px 0 20px 20px; }

Zweispaltige Artikelausgabe nach Kategorie mit WP_Query und sticky_posts

start.php (Benutzerdefiniertes Seitentemplate)

  • eine CSS-Klasse frontcoluml und eine frontcolumr, die die beiden Spalten formatiert
  • mit der PHP-Variable $postcount wird gezählt, wie viele Beiträge bereits ausgegeben wurden; mit $showposts wird dann die Zahl der noch auszugebenden weiteren Beiträge ermittelt
  • es wird in diesem Beispiel davon ausgegangen das pro Spalte drei Beiträge (post_per_page => 3) aus Kategorie fünf (cat => 5) ausgegeben werden sollen
<div class="frontcoluml">
<?php
$temp = $wp_query;
$wp_query = new WP_Query( array( 'posts_per_page' => '3', 'cat' => 5, 'post__in' => get_option('sticky_posts')));
while ($wp_query->have_posts()) : $wp_query->the_post();
?>
<h3><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
<div class="entry">
<?php the_excerpt(); ?>
</div>
<?php
$postcount++;
endwhile;
wp_reset_postdata();
$showposts = 3 - $postcount;
if ($showposts != 0) {
$temp = $wp_query;
global $more; $more = 0;
$wp_query = new WP_Query( array( 'posts_per_page' => $showposts, 'ignore_sticky_posts' => 1, 'post__not_in' => get_option('sticky_posts'), 'cat' => 5));
while ($wp_query->have_posts()) : $wp_query->the_post();
?>
<h3><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
<div class="entry">
<?php the_excerpt(); ?>
</div>
<?php endwhile;
wp_reset_postdata();
} else {}
unset($postcount);
unset($showposts);
?>
</div>

<div class="frontcolumr">
<?php
$temp = $wp_query;
$wp_query = new WP_Query( array( 'posts_per_page' => '3', 'cat' => 5, 'offset' => 3, 'post__in' => get_option('sticky_posts')));
while ($wp_query->have_posts()) : $wp_query->the_post();
?>
<h3><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
<div class="entry">
<?php the_excerpt(); ?>
</div>
<?php
$postcount++;
endwhile;
wp_reset_postdata();
$showposts = 3 - $postcount;
if ($showposts != 0) {
$temp = $wp_query;
global $more; $more = 0;
$wp_query = new WP_Query( array( 'posts_per_page' => $showposts, 'ignore_sticky_posts' => 1, 'post__not_in' => get_option('sticky_posts'), 'cat' => 5, 'offset' => 3,));
while ($wp_query->have_posts()) : $wp_query->the_post();
?>
<h3><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
<div class="entry">
<?php the_excerpt(); ?>
</div>
<?php endwhile;
wp_reset_postdata();
} else {}
unset($postcount);
unset($showposts);
?>
</div>

Referenz

WordPress Nutzerrollen und ihre Rechte

Grundsätzlich hat eine übergeordnete Nutzerrolle immer die Rechte einer untergeordneten. Der Super Admin existiert nur in einem Multisite-Netzwerk. Entsprechend sind die Rechte eines Administrators hier eingeschränkter.

  • Ein Super Admin verwaltet ein Multisite-Netzwerk.
  • Ein Administrator verwaltet eine Website.
  • Ein Redakteur kann alle Beiträge, Seiten, Kommentare und Kategorien veröffentlichen, bearbeiten und löschen.
  • Ein Autor kann Dateien hochladen, eigene Beiträge veröffentlichen und bearbeiten.
  • Ein Mitarbeiter kann Beiträge erstellen, aber nicht veröffentlichen.
  • Ein Abonnent kann das eigene Nutzerprofil bearbeiten und registriert kommentieren.
Nutzerrechte (1)Super AdminAdmini-stratorRedakteurAutorMitarbeiterAbonnent
Nutzerrechte (1)Super AdminAdmini-stratorRedakteurAutorMitarbeiterAbonnent
MU (2) verwaltenJa
Seiten in MU hinzufügen, bearbeiten, löschenJa
Nutzer in MU hinzufügen, bearbeiten, löschenJa
Themes in MU freischalten, (de)installieren, bearbeitenJa
MU-Einstellungen bearbeitenJa
HTML und Javascript in Seiten, Beiträgen und Kommentaren ausführenJa
Nutzer erstellenJaJa (3)
Nutzer einer Website erstellen, bearbeiten, entfernenJaJa (3)
Plugins aktivieren, löschenJaJa (4)
Plugins installieren, bearbeitenJaJa (3)
WordPress, Themes & Plugins aktualisierenJaJa (4)
Einstellungen (einer Website) bearbeitenJaJa
Themes installieren, löschen, Dateien bearbeitenJaJa (4)
Theme-Einstellungen bearbeitenJaJa
Theme wechselnJaJa
Import/Export-Tool nutzenJaJa
Kommentare moderierenJaJaJa
Kategorien hinzufügen, bearbeiten, löschenJaJaJa
Beiträge/Seiten veröffentlichen, bearbeiten, löschenJaJaJa
private Beiträge/Seiten lesen, bearbeiten, löschenJaJaJa
Dateien hochladenJaJaJaJa
"Meine Seiten"-Menü nutzenJaJaJaJa
eigene Beiträge veröffentlichenJaJaJaJa
eigene Beiträge bearbeiten, löschenJaJaJaJaJa
eigenes Nutzerprofil bearbeitenJaJaJaJaJaJa