it-swarm.dev

Upravit obrazovku Upravit příspěvek pro vlastní typy příspěvků?

Jaký je nejlepší způsob, jak zcela přizpůsobit obrazovku Upravit příspěvek pro konkrétní typ příspěvku?

Přizpůsobil jsem ji do té míry, že jsem již vytvořil vlastní typ příspěvku - přidal další pole atd., Ale chci odstranit mnoho prvků, jako jsou permalinks, náhled příspěvku, zakázat rychlé úpravy atd.

15
fxfuture

Některé z těchto otázek jsou zodpovězeny zde: Nastavit výchozí možnosti obrazovky správce a příkaz Metabox

Jak odstranit metabox permalink:

function my_remove_meta_boxes() {
    remove_meta_box('slugdiv', 'my-post-type', 'core');
}
add_action( 'admin_menu', 'my_remove_meta_boxes' );

navíc budete muset skrýt # edit-slug-box s css nebo javascript. viz: Načítání externích skriptů v administraci, ale POUZE pro konkrétní typ příspěvku?

Zakázání rychlé úpravy:

function my_remove_actions( $actions, $post ) {
    if( $post->post_type == 'my-post-type' ) {
        unset( $actions['inline hide-if-no-js'] );
    }
    return $actions;
}
add_filter( 'post_row_actions', 'my_remove_actions', 10, 2 );

Chcete-li změnit odkaz náhledu, můžete použít filtr 'preview_post_link', ale funguje pouze v případě, že příspěvek ještě nebyl publikován. Řešením by tedy bylo odebrat pole pro odeslání meta a přidat vlastní upravený soubor:

function my_replace_submit_meta_box() {
    remove_meta_box('submitdiv', 'my-post-type', 'core');
    add_meta_box('submitdiv', __('Publish'), 'custom_post_submit_meta_box', 'my-post-type', 'side', 'core');
}
add_action( 'admin_menu', 'my_replace_submit_meta_box' );

function custom_post_submit_meta_box() { // a modified version of post_submit_meta_box() (wp-admin/includes/meta-boxes.php, line 12)
    ...
}
16
sorich87