it-swarm.com.de

Permalink- und Vorschau-Schaltfläche ausblenden und auf benutzerdefinierten Beitrag verlinken

weiß jemand, wie man eine benutzerdefinierte Box, die "Publish,save draft,and preview button" enthält? Ich verstecke alle Schaltflächen mit Ausnahme der Schaltfläche "Veröffentlichen". und genau wie "change permalink" auch "view,delete,edit" im Beitrag Wie kann ich den Permalink verbergen und den Link anzeigen?

hier die abbildung wovon ich rede.

Anpassen der Schaltfläche "Veröffentlichen" in WordPress

enter image description hereenter image description here

Anpassen des Post-Links aus WordPress

enter image description hereenter image description here

lösche den Permalink unter dem WordPress-Post-Titel

enter image description here

6
user3073032

Sie können das oben genannte mit Haken erreichen. Verwenden Sie den folgenden Code in der Dateifunctions.phpIhres aktiven Themas, um diese Arbeit zu erhalten

lösche den Permalink unter dem WordPress-Post-Titel

add_filter( 'get_sample_permalink_html', 'wpse_125800_sample_permalink' );
function wpse_125800_sample_permalink( $return ) {
    $return = '';

    return $return;
}

Anpassen des Post-Links aus WordPress

add_filter( 'page_row_actions', 'wpse_125800_row_actions', 10, 2 );
add_filter( 'post_row_actions', 'wpse_125800_row_actions', 10, 2 );
function wpse_125800_row_actions( $actions, $post ) {
    unset( $actions['inline hide-if-no-js'] );
    unset( $actions['view'] );

    return $actions;
}

Anpassen der Schaltfläche "Veröffentlichen" in WordPress

Unten gibt es Raum für Verbesserungen. Ich konnte die Hooks nicht dazu bringen, Folgendes zu tun.

global $pagenow;
if ( 'post.php' == $pagenow || 'post-new.php' == $pagenow ) {
    add_action( 'admin_head', 'wpse_125800_custom_publish_box' );
    function wpse_125800_custom_publish_box() {
        if( !is_admin() )
            return;

        $style = '';
        $style .= '<style type="text/css">';
        $style .= '#edit-slug-box, #minor-publishing-actions, #visibility, .num-revisions, .curtime';
        $style .= '{display: none; }';
        $style .= '</style>';

        echo $style;
    }
}

ANMERKUNGEN

Zusätzliche bedingte Anweisung in meinem Fall, hier habe ich bereits für die bedingte Anweisung gelöst

global $pagenow;
if( 'edit.php' == $pagenow && isset($_GET['page_type']) == 'my-custom-post' ){
     // here i use delete post row function that explained by Maruti Mohanty on my custom post 
}

bedingte Anweisung zum Hinzufügen neuer Posts und zum benutzerdefinierten Veröffentlichen von Metabox-Einstellungen

global $pagenow;
    if( 'page-new.php' == $pagenow && isset($_GET['page_type']) == 'my-custom-post' ){
         // here i use add new post and custom publish metabox function
    }

lass es mich wissen, wenn es eine andere Erklärung gibt.

vielen Dank!

9
Maruti Mohanty

Ich bin nur über diese Frage gestolpert und dachte, ich würde meine häufigste Lösung teilen, die möglicherweise nicht für alle in allen Szenarien funktioniert, aber ich glaube, dass dies der effizienteste Weg ist, um die gewünschten Ergebnisse zu erzielen.

Wenn Sie ein CPT registrieren, für das in Ihrem Design oder Plugin keine Ausgabe in einer Ansicht erforderlich ist, definieren Sie einfach die Eigenschaft 'public' => false,.

Eine typische CPT-Registrierung könnte beispielsweise so aussehen:

<?php 

/**
 * Custom Post Type: cw-programs (programs)
 * Theme: Your Custom Theme
 * Desc: A custom WP theme
 *
 * @package custom-wp-theme
 * @since   1.0.0
 * @version 1.0.0
 */
function mycpt_content_type_name() {
  $labels = array(
    'name' => __( 'My CPT'),
    'singular_name' => __( 'My CPT' ),
    'add_new' => _x('Add New', 'My CPT'),
    'add_new_item' => __('Add New My CPT'),
    'edit_item' => __('Edit My CPT'),
    'new_item' => __('New My CPT'),
    'view_item' => __('View My CPT'),
    'search_items' => __('Search My CPT'),
    'not_found' =>  __('No My CPT found'),
    'not_found_in_trash' => __('No My CPT found in Trash'), 
    );
    $args = array(
    'labels' => $labels,
    'menu_icon' => 'dashicons-clipboard',
    'public' => false,
    'publicly_queryable' => false,
    'show_ui' => true, 
    'query_var' => true,
    'capability_type' => 'post',
    'hierarchical' => false,
    'menu_position' => null,
    'rewrite' => array('slug' => __( 'mycpt' )),
    'supports' => array('title', 'editor'),
    'show_in_menu' => false
    ); 

    register_post_type(__( 'cw-program' ),$args);
}

add_action( 'init', 'mycpt_content_type_name' );

In One-Fell-Swoop sollte dies die Links zu Ansichts-, Slug- und Vorschauänderungen von allen zugeordneten Admin-Bildschirmen entfernen. Diese Lösung gefällt mir, weil sie keine zusätzlichen Funktionen erfordert und die Logik (offensichtlich) an derselben Stelle wie Ihr cpt definiert ist. Hoffe, dass dies anderen da draußen hilft, auf der Suche nach einer ähnlichen Lösung.

11
derekshirk

Wir können das Feld Vorschau, Ansicht und Permalinks für Posts entfernen, indem wir das Argument publicly_queryable auf false setzen.

 setting **publicly_queryable** argument to false 

1
Fahid Javid