Ascunde permalink și butonul de previzualizare pe postare personalizată

9 dec. 2013, 05:01:46
Vizualizări: 14.3K
Voturi: 8

știe cineva cum să personalizez caseta care conține "Publică, salvează ciornă și butonul de previzualizare"? Vreau să ascund toate butoanele în afară de butonul Publică. Și la fel pentru "schimbă permalink-ul" și pentru linkurile "vizualizează, șterge, editează" din interiorul postării. Cum să ascund permalink-ul și linkul de vizualizare?

aici este ilustrarea despre ce vorbesc.

Personalizarea butonului Publică față de cel original din WordPress

Personalizare buton publicare WordPress Comparație butoane publicare WordPress

Personalizarea linkului postării față de cel original din WordPress

Personalizare link postare WordPress Comparație linkuri postări WordPress

ștergere permalink sub titlul postării WordPress

Ștergere permalink WordPress

0
Toate răspunsurile la întrebare 3
2
12

Tocmai am dat peste această întrebare și m-am gândit să împărtășesc soluția mea cea mai des folosită, care poate nu funcționează pentru toată lumea în toate scenariile, dar cred că este cea mai eficientă metodă pentru a obține rezultatele dorite.

Când înregistrezi un CPT (Custom Post Type) care nu necesită o afișare individuală în tema sau pluginul tău, pur și simplu definește proprietatea 'public' => false,

De exemplu, o înregistrare tipică a unui CPT ar putea arăta astfel:

<?php 

/**
 * Tipul de conținut personalizat: cw-programs (programe)
 * Temă: Tema ta Personalizată
 * Desc: O temă WordPress personalizată
 *
 * @package custom-wp-theme
 * @since   1.0.0
 * @version 1.0.0
 */
function mycpt_content_type_name() {
  $labels = array(
    'name' => __( 'CPT-ul meu'),
    'singular_name' => __( 'CPT-ul meu' ),
    'add_new' => _x('Adaugă nou', 'CPT-ul meu'),
    'add_new_item' => __('Adaugă CPT nou'),
    'edit_item' => __('Editează CPT'),
    'new_item' => __('CPT nou'),
    'view_item' => __('Vezi CPT'),
    'search_items' => __('Caută CPT'),
    'not_found' =>  __('Nu s-a găsit niciun CPT'),
    'not_found_in_trash' => __('Nu s-au găsit CPT-uri în Coșul de gunoi'), 
    );
    $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' );

Dintr-o dată, această soluție ar trebui să elimine link-urile de vizualizare, slug și previzualizare din toate ecranele asociate din administrare. Îmi place această soluție pentru că nu necesită funcții suplimentare, iar logica este definită în același loc cu CPT-ul tău (evident). Sper că ajută și pe alții care caută o soluție similară.

4 aug. 2015 10:41:19
Comentarii

Acesta ar trebui să fie răspunsul acceptat. Știam despre public, dar nu știam că poți seta și show_ui la true. Această combinație este perfectă.

Tim Tim
21 ian. 2016 04:02:06

@Tim Un loc excelent pentru a experimenta cu CPT este generatorul CPT de pe https://generatewp.com/post-type/ Vei găsi toate opțiunile cu (o oarecare) explicație.

pixeline pixeline
18 feb. 2016 12:06:45
5
11

Puteți realiza cele de mai sus folosind hook-uri. Folosiți codul de mai jos în fișierul functions.php al temei active pentru a face acest lucru

șterge legătura permanentă de sub titlul postării WordPress

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

    return $return;
}

Personalizarea legăturii postării din WordPress original

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;
}

Personalizarea butonului Publicare din WordPress original

Mai jos există loc pentru îmbunătățiri, nu am reușit să găsesc hook-urile pentru a face următoarele, așa că am folosit metoda CSS pentru a le ascunde.

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;
    }
}

NOTIȚE

Declarație condițională suplimentară în cazul meu, aici am rezolvat deja pentru declarația condițională

global $pagenow;
if( 'edit.php' == $pagenow && isset($_GET['page_type']) == 'my-custom-post' ){
     // aici folosesc funcția de ștergere a rândului de postare explicată de Maruti Mohanty pentru postarea mea personalizată
}

de asemenea, declarație condițională pentru adăugarea unei noi postări și setările personalizate ale cutiei meta Publicare

global $pagenow;
    if( 'page-new.php' == $pagenow && isset($_GET['page_type']) == 'my-custom-post' ){
         // aici folosesc funcția de adăugare a unei noi postări și a cutiei meta Publicare personalizate
    }

anunțați-mă dacă mai sunt necesare alte explicații.

mulțumesc!

9 dec. 2013 09:47:31
Comentarii

hei, mulțumesc pentru răspuns. Am încercat deja, dar când am adăugat funcția condițională if($post->post_type == 'my-post'){ //unset code }, funcționează pe postarea mea personalizată, dar pe postarea implicită din WordPress dispare.

user3073032 user3073032
9 dec. 2013 15:46:31

de asemenea, pentru permalink, permalink-ul dispare așa cum doresc, dar apare butonul get shortlink.

user3073032 user3073032
9 dec. 2013 15:47:42

mulțumesc!! am rezolvat deja, dar nu sunt sigur despre butonul get shortlink, încă nu l-am rezolvat...

user3073032 user3073032
9 dec. 2013 16:43:29

@user3073032 Am editat răspunsul, acum ar trebui să elimine și shortlink. Am adăugat #edit-slug-box la ultima funcție

Maruti Mohanty Maruti Mohanty
9 dec. 2013 16:58:03

@user3073032 Scuze, din greșeală am respins editarea pe care ai făcut-o anterior. Dacă mai vrei să adaugi ceva, poți face asta acum, voi revizui și voi adăuga ceea ce este necesar.

Maruti Mohanty Maruti Mohanty
9 dec. 2013 17:23:58
1

Putem elimina previzualizarea, vizualizarea și câmpurile permalink-urilor prin setarea argumentului publicly_queryable la false.

setarea argumentului **publicly_queryable** la false

14 feb. 2017 16:41:34
Comentarii

Cea mai simplă soluție!

Bence Szalai Bence Szalai
15 ian. 2021 23:28:42