Seite löschen deaktivieren

  • Hallo,
    Ich bin neu hier im Forum und hab gleich ne wichtige Frage.
    Ich möchte Wordpress als CMS nutzen.
    Wie deaktiviere ich die "Seite löschen" Funktion für einen Benutzer ?
    Also ich möchte erreichen, dass ein Benutzer Beiträge schreiben und löschen darf und auch neue Seiten erstellen darf aber er soll Seiten nicht löschen können.

    Es gibt ne Menge Plugins z.B "Rolemanager"," Category Access", "Userextra", für die Benutzerrechte aber ich hab nichts gefunden was speziell das "Seiten löschen" verhindert.

    Vielen Dank für Hilfe :)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Hallo jottlieb,

    Gute Idee, aber dann wäre der Button ja auch für mich als Administrator weg.
    Also ich möchte als Administrator alle Rechte behalten. Nur der Benutzer soll daran gehindert werden Seiten zu löschen.

    trotzdem vielen Dank für den Vorschlag :)

  • Hallo Morris,

    wenn ich wüsste wie das geht wäre ich überglücklich :-D:-D

    Doch leider weiß ich nicht wie das geht. Denn ich kann zwar ein weinig in PHP rumpfuschen aber mal eben ne Rechteabfrage das ist nicht drin.
    Ich benutze Wordpress weil es relativ leicht zu handhaben ist.
    Ich hab nicht die Zeit und vielleicht auch nicht das Können mich in PHP einzuarbeiten.

    Danke für den Vorschlag

  • Leider finde ich unter "Uselevel" nicht das was ich brauche. Ich hab ja schon alle Möglichkeiten durchgespielt aber ich sehe keinen Weg auschließlich das "Seite löschen" zu deaktivieren.

    Bitte um weiter Tips. Danke :)

  • Die Rechteabfrage:

    PHP
    <?php global $user_level; if ($user_level = 10) { ?>  
    
    
    <?php if ('edit' == $action) :
    	$delete_nonce = wp_create_nonce( 'delete-page_' . $post_ID ); ?>
    	<input name="deletepost" class="button" type="submit" id="deletepost" tabindex="10" value="<?php _e('Delete this page') ?>" <?php echo "onclick=\"if ( confirm('" . sprintf(__("You are about to delete this page \'%s\'\\n  \'Cancel\' to stop, \'OK\' to delete."), js_escape($post->post_title) ) . "') ) { document.forms.post._wpnonce.value = '$delete_nonce'; return true;}return false;\""; ?> />
    <?php endif; ?>
    
    
    <?php } ?>

    Das in die /wp-admin/edit-page-form.php ganz unten einbauen bzw. den alten Code für den Löschen-Button damit ersetzen.

    In der edit-pages.php müsstest du auch nochmal ran und das:

    PHP
    <?php global $user_level; if ($user_level = 10) { ?>  
    
    
    Löschen-Code
    
    
    <?php } ?>


    Um den Code für den Löschen-Link drum bauen.

    "Eine gut gestellte Frage ist schon halb beantwortet."

    Einmal editiert, zuletzt von jottlieb (8. September 2006 um 16:35)

  • Oh, das sieht ja schon vielverprechend aus ! Aber an welcher Stelle in Wordpress-Code muss ich den Hand anlegen. Wo finde ich den Code für den "Seite löschen" Button. Was muß ich wie abändern. Vor allem so dass ich selber noch in der Lage bin Seiten zu löschen nicht aber der Benutzer sprich Redakteur ?

    vielen Dank bis hier erstmal :-D

  • Zitat

    Aber an welcher Stelle in Wordpress-Code muss ich den Hand anlegen. Wo finde ich den Code für den "Seite löschen" Button. Was muß ich wie abändern.


    Steht alles oben.
    In edit-page-form.php

    PHP
    <?php if ('edit' == $action) : 
        $delete_nonce = wp_create_nonce( 'delete-page_' . $post_ID ); ?> 
        <input name="deletepost" class="button" type="submit" id="deletepost" tabindex="10" value="<?php _e('Delete this page') ?>" <?php echo "onclick=\"if ( confirm('" . sprintf(__("You are about to delete this page \'%s\'\\n  \'Cancel\' to stop, \'OK\' to delete."), js_escape($post->post_title) ) . "') ) { document.forms.post._wpnonce.value = '$delete_nonce'; return true;}return false;\""; ?> /> 
    <?php endif; ?>


    mit dem obenstehenden Code (schon fix und fertig) ersetzen.

    Bei /wp-admin/edit-pages.php das:

    PHP
    <?php if ( current_user_can('edit_pages') ) { echo "<a href='" . wp_nonce_url("post.php?action=delete&amp;post=$post->ID", 'delete-post_' . $post->ID) . "' class='delete' onclick=\"return deleteSomething( 'page', " . $id . ", '" . sprintf(__("You are about to delete the &quot;%s&quot; page.\\n&quot;OK&quot; to delete, &quot;Cancel&quot; to stop."), js_escape(get_the_title('','',0))) . "' );\">" . __('Delete') . "</a>"; } ?>

    mit

    PHP
    <?php global $user_level; if ($user_level = 10) { ?>   <?php if ( current_user_can('edit_pages') ) { echo "<a href='" . wp_nonce_url("post.php?action=delete&amp;post=$post->ID", 'delete-post_' . $post->ID) . "' class='delete' onclick=\"return deleteSomething( 'page', " . $id . ", '" . sprintf(__("You are about to delete the &quot;%s&quot; page.\\n&quot;OK&quot; to delete, &quot;Cancel&quot; to stop."), js_escape(get_the_title('','',0))) . "' );\">" . __('Delete') . "</a>"; } ?>
    <?php } ?>


    ersetzen.

    Zitat

    Vor allem so dass ich selber noch in der Lage bin Seiten zu löschen nicht aber der Benutzer sprich Redakteur ?


    Dafür sorgt ja die eingebaute Abfrage if user_level = 10. Userlevel 10 ist admin...

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • Ja Klasse, hat alles super geklappt, keine Fehlermeldung !

    Jetzt kann der Benutzer keine Seiten mehr löschen.
    Doch leider kann der Benutzer die Seiten jetzt nicht mal mehr bearbeiten und sichern. Denn die Seiten erscheinen garnicht erst in der Verwaltung.

    Was muß noch geändert werden, dass der Benutzer die Seiten bearbeiten kann, also auch statische Seiten bearbeiten kann, Texte verändern und löschen kann ohne jedoch sie Seite als Solche löschen zu können.

    Vielen vielen Dank bis hier hin :-D:-D

  • Kann ich mir nicht so recht vorstellen. Der Code wirkt sich nur auf die Löschen-Buttons aus, wenn du ihn richtig eingefügt hast.

    Aber mal testweise hinter dem ersten <?php } ?> ein zweites mal <?php } ?> schreiben.

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • Kann ich nicht nachvollziehen - denn im Gegenteil, bei mir passiert garnix. Selbst wenn ich den Code für das Löschen aus der edit-pages.php komplett rausnehme, sehe ich immer noch den Link. Hmm.

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • Hallo jottlieb,

    Danke nochmal für deine große Hilfe!
    Dass die Seiten kurzzeitig garnicht in der Verwaltung auftauchten lag am Plugin "Role Manager". Ich hab jetzt kein fremdes Plugin mehr aktiviert.

    Nachdem ich nun alle deine Schritte nochmal durchgegangen bin, ist bei mir der "Seite löschen" Button wieder da. Jedoch hab ich dadurch nichts gewonnen. Ich möchte ja erreichen, dass der Benutzer eben keine Seite löschen können darf.

    Was könnte denn noch zu tun sein um das zu erreichen? :???::confused:

  • Ich muss mir das in einer ruhigen Minute noch einmal anschauen, besonders in der Seiten-Übersicht.

    Aber auf der Seite selber dürfte der Button jetzt versteckt sein, oder?

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • Hallo,

    auf der Seite selbst bestand nie die Möglichkeit für den Benutzer irgendetwas zu tun. Soll er auch garnicht. Er soll sich ganz normal über das wp-admin mit seinen Benutzerdaten einloggen und dann Beiträge schreiben und löschen. Er soll auch Seiten schreiben dürfen.

    Er soll eigentlich alles tun können wie in einem normalen CMS. Aber er soll keine Seiten löschen dürfen. Denn dann ist der Jammer groß wenn plötzlich eine wichtige Seite aus versehen gelöscht wurde.

    Seiten löschen soll in der Verantwortung des Administrators also bei mir liegen. Ich biete jemanden das CMS an und der "Kunde" kann damit seine Seiten pflegen aber eben keine Seiten löschen.

    Und weil ich Worpress einfach genial finde und weil es sehr schnell erlernbar ist, möchte ich meinen "Kunden" halt Wordpress zur Pflege Ihrer Seiten anbieten.:)

  • "Aus versehen" kann man eh keine Seite löschen, da vorher noch eine Sicherheitsabfrage erscheint.

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • Das ist aber nicht sicher genug ! Denn wenn dann doch mal jemand eine Seite gelöscht hat ist es zu spät.
    Der Kunde wendet sich dann an mich und ich kann Ihm nicht helfen.

    Was gibt es für einen Schutz dagegen?

    Leider bin ich kein PHP-Fachmann sondern nur Designer.

    Ich bin weiterhin für jede Hilfe offen und kann nur hoffen das jemanden noch was tolles dazu einfällt:)

  • Ich kann auch kein PHP, trotzdem ist es mir möglich mit etwas Arbeit die entsprechenden Codestellen zu finden - HTML wirst du ja wohl können.

    Und wiegesagt, theoretisch funktioniert meine Variante, aber mit der Umsetzung hapert es noch etwas ;)

    "Eine gut gestellte Frage ist schon halb beantwortet."

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!