it-swarm.com.de

Deaktivieren Sie die Funktion "Haftnotizen"

Ich muss eine benutzerdefinierte WordPress-Administrationsoberfläche für einen Client erstellen. Ich möchte die Funktion "Sticky Post" im Administrationsbereich vollständig deaktivieren.

Ich habe im Internet einige Posts gefunden, in denen vorgeschlagen wird, das Kontrollkästchen mit CSS auszublenden, aber ich möchte diese Funktion unbedingt sowohl im Bearbeitungsmodus als auch im Schnellbearbeitungsmodus deaktivieren.

Irgendwelche Ideen?

3
MKay

Zusätzlich zu CSS können Sie versuchen, jeden Beitrag zu entfernen, sobald er klebrig gemacht wurde (ungetestet):

add_action( 'post_stuck', function( $post_id )
{
    unstick_post( $post_id );
} );

Wenn Sie nach einem anderen Ansatz suchen, als ihn mit CSS vor der Benutzeroberfläche zu verbergen, sollten Sie benutzerdefinierte Beitragstypen anstelle des post Beitragstyps verwenden.

Soweit ich mich erinnere, wird die Funktion sticky UI nur vom Post-Typ post unterstützt. Zumindest ein kurzer Blick auf die Tabellenklasse der Posts-Liste zeigt einen Haken wie diesen:

if ( 'post' === $post_type && $sticky_posts = get_option( 'sticky_posts' ) ) {

Wenn Sie jedoch nicht den Post-Typ post verwenden, ist dies in vielen Fällen möglicherweise nicht geeignet und erfordert möglicherweise weitere Anpassungen für Ihre Website.

2
birgire

Die beste und optimalste Lösung ist das "Ignorieren" von Haftnotizen bei allen Abfragen, die mit diesem Code durchgeführt werden können:

add_filter( 'pre_get_posts', function( $query ) {
    if ( ! is_admin() && $query->is_main_query() ) {
        $query->set( 'ignore_sticky_posts', 1 );
    }
} );

Natürlich kann der Benutzer immer noch auf das Kontrollkästchen klicken, aber es macht eigentlich nichts, also spielt es keine Rolle. Aber hier ist ein guter Artikel, der zeigt, wie man sich mit CSS versteckt, wenn man möchte - Gibt es eine Möglichkeit, die Funktion für Haftnotizen zu deaktivieren?

0
WPExplorer

sie könnten diesen Code hinzufügen:

// Hide sticky posts
add_action( 'admin_print_styles', 'hide_sticky_option' );
function hide_sticky_option() {
global $post_type, $pagenow;
if( 'post.php' != $pagenow && 'post-new.php' != $pagenow && 'edit.php' != $pagenow )
    return;
?>
<style type="text/css">#sticky-span { display:none!important }
.quick-edit-row .inline-edit-col-right div.inline-edit-col > :last-child > label.alignleft:last-child{ display:none!important; }</style>
<?php
}

Das funktioniert gut für mich.

0
rudtek