Support » Allgemeine Fragen » Plugin, das erinnert, wenn eine Seite erneuert werden muss

  • Gelöst mollamilch

    (@mollamilch)


    Liebes Forum,

    ich bin auf der Suche nach einem Plugin, das mich erinnert, dass eine Seite bearbeitet werden muss. Das stelle ich mir im Moment so vor, dass es bei jeder Seite und jedem Beitrag ein Datum-Feld gibt und man an dem eingestellten Datum auf dem Dashboard des Backends oder per Mail benachrichtigt wird, dass Seite xy erneuert werden sollte.

    Grund ist, dass ich sehr viele Seiten habe und man schnell den Überblick verliert, ob alle Informationen auf allen Seiten aktuell sind. Weiß man, dass die Informationen an einem bestimmten Datum erneuert werden müssen, kann man ein Datum eintragen und muss sich das nicht merken oder aufschreiben.

    Ich bin bislang mit der Suchfunktion nicht weitergekommen…

    Vielen Dank für die Hilfe!

Ansicht von 5 Antworten - 1 bis 5 (von insgesamt 5)
  • Hallo,
    das sollte z. B. mit ACF (Advanced Custom Fields) möglich sein, siehe z. B. hier.
    Viele Grüße
    Hans-Gerd

    Ich kenne deine Anforderungen nicht im Detail, aber für eine professionelle redaktionelle Betreuung einer Website eignet sich auch das Plugin Edit Flow, das unter anderem auch einen Kalender zur Veröffentlichung von Beiträgen enthält. Schau’s dir mal an, vielleicht schießt es auch weiter übers Ziel hinaus und eine einfache, selbstgestrickte Lösung (z.B. mit einem Custom Field wie von Hans-Gerd vorgeschlagen) reicht schon völlig aus.

    Vielen Dank euch beiden für die Lösungen und entschuldigt meine späte Antwort.

    Ich habe bisher nur die Grundfunktionen von ACF gebraucht, aber wüsste jetzt auf Anhieb nicht, wie ich eine Liste auf dem Dashboard aufmachen kann und eine Regel setze, die alle Beiträge auflistet, deren Datum <= heute ist (was ja prinzipiell meine einzige Anforderung ist). Ich google gleich nochmal ein bisschen, aber wenn du mich in die richtige Richtung lenken könntest, wäre ich dir sehr dankbar.

    Edit Flow sieht für mich nach einem guten Tool für diesen Bereich aus, schießt aber wie vermutet weit über das Ziel hinaus. Ich werde es trotzdem einmal auf einer Testumgebung installieren und falls ich mit ACF nicht das gewünschte Ergebnis erzielen kann, werde ich es mit EditFlow probieren.

    Custom Fields (oder „eigene Felder“, wie es in der deutschen Übersetzung heißt) sind Eingabefelder für zusätzliche Meta-Informationen zu Beiträgen und Seiten. Eine Meta-Informationen kann auch ein Feld „Bis wann sollte der Beitrag veröffentlicht werden?“ sein.

    Custom Fields kannst du ohne Plugins hinzufügen, aber es ist weniger fehleranfällig, wenn du für die Eingabe eine so genannte Metabox (ein Eingabefeld  für Metainformationen) erstellst. Dazu kannst du dir ein eigenes kleines Plugin schreiben (die Entwickler-Dokumentation von WordPress liefert dir dazu Beispiele) oder einfach ein Plugin wie Advanced Custom Fields verwenden, was sicher die bequemere Lösung ist.

    Eigene Felder (Custom Fields) kannst du an beliebiger Stelle ausgeben – zum Beispiel im Frontend bei der Ausgabe des Beitrags oder auch im Backend in der Übersichtstabelle der Beiträge. Dazu musst du aber wieder entweder ein bisschen programmieren (eine Anleitung findest du z.B. hier: https://code.tutsplus.com/articles/add-a-custom-column-in-posts-and-custom-post-types-admin-screen–wp-24934) oder du verwendest ein weiteres Plugin, z.B. Admin Columns. Damit kann deine Beitrags-Übersicht z.B. so aussehen:

    Screenshot Beitragsübersicht

    Mit der Pro-Version kannst du das Feld auch sortierbar machen, also die Beiträge z.B. absteigend nach Veröffentlichungsdatum sortieren. Oder du sparst dir die Lizenzgebühren und programmierst rasch was eigenes (Anleitung siehe Link weiter oben).

    Mit pixolins Tipp habe ich mir für mein WordPress Network quick and dirty ein kleines Plugin zusammengeschustert, dass genau meine Bedürfnisse erfüllt.

    Für alle Interessierten:

    <?php
    /**
     * Plugin Name: Update Post Reminder
     * Description: Reminds you to update posts with a metabox on each post and a widget on the dashboard.
     * Version: 1.0
     * Author: Lennart Möller
     * Author URI: https://www.lennartmoeller.com
     */
    
    function display_update_post_reminder_widget() {
    	if (is_multisite() && is_main_site()) {
    		// search in all blogs in network
    		$blogs = get_sites();
    		foreach ($blogs as $blog) {
    			display_post_entries($blog);
    		}
    		restore_current_blog();
    	} else {
    		// search only in current blog
    		display_post_entries(get_current_blog_id());
    	}
    } 
    
    function display_post_entries($blog) {
    	$today = date('Ymd');
    	switch_to_blog($blog->blog_id);
    	foreach (get_pages() as $page) {
        	$page_date = get_field("erinnerungsdatum", $page);
        	if ($page_date && $page_date < $today) {
        		echo "seit ".convertYmd(get_field("erinnerungsdatum", $page)).": ";
        		$editDomain = get_site_url($blog->blog_id)."/wp-admin/post.php?post=".$page->ID."&action=edit";
        		?>
        		<a href="<?php echo $editDomain ?>" target="_blank">
        			<?php echo get_the_title($page); ?><br>
        		</a>
        	<?php }
    	}
    }
    
    // Ymd to d.m.Y
    function convertYmd($date) {
    	return substr($date,-2).".".substr($date,4,2).".".substr($date,0,4);
    }
    
    function add_dashboard_widgets() {
    	wp_add_dashboard_widget('update_post_reminder_widget', 'Seiten, die eventuell aktualisiert werden müssen', 'display_update_post_reminder_widget' );
    } 
    add_action('wp_network_dashboard_setup', 'add_dashboard_widgets');	// add widget on Network Page
    add_action('wp_dashboard_setup', 'add_dashboard_widgets');			// add widget on each blog
    
    // Creates a Metabox on every page with a date input (ACF PHP output)
    if( function_exists('acf_add_local_field_group') ):
    acf_add_local_field_group(array(
    	'key' => 'group_5e8725d67562c',
    	'title' => 'Seite aktualisieren am',
    	'fields' => array(
    		array(
    			'key' => 'field_5e8725dda5ce9',
    			'label' => 'Erinnerungsdatum',
    			'name' => 'erinnerungsdatum',
    			'type' => 'date_picker',
    			'instructions' => 'Wähle ein Datum aus, ab dem du auf deinem Dashboard erinnert werden möchtest, dass diese Seite eine Aktualisierung benötigt.',
    			'required' => 0,
    			'conditional_logic' => 0,
    			'wrapper' => array(
    				'width' => '',
    				'class' => '',
    				'id' => '',
    			),
    			'display_format' => 'd.m.Y',
    			'return_format' => 'Ymd',
    			'first_day' => 1,
    		),
    	),
    	'location' => array(
    		array(
    			array(
    				'param' => 'post_type',
    				'operator' => '==',
    				'value' => 'page',
    			),
    		),
    	),
    	'menu_order' => 0,
    	'position' => 'side',
    	'style' => 'default',
    	'label_placement' => 'top',
    	'instruction_placement' => 'label',
    	'hide_on_screen' => '',
    	'active' => true,
    	'description' => '',
    ));
    endif;
    ?>
Ansicht von 5 Antworten - 1 bis 5 (von insgesamt 5)