0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

カスタム投稿タイプで、詳細画面を作らない時、やった方がいいかもしれない処理

Posted at

<?php
/**
 * カスタム投稿タイプからパーマリンク欄を非表示にする
 */
function remove_permalink_meta_box() {
    // カスタム投稿タイプの名前を指定(例:'your_custom_post_type'を実際のカスタム投稿タイプ名に変更してください)
    remove_meta_box('slugdiv', 'your_custom_post_type', 'normal');
}
add_action('admin_menu', 'remove_permalink_meta_box');


/**
 * カスタム投稿タイプの登録時にpermalinkを非表示にする
 * 詳細画面も表示しないように設定
 */
function register_custom_post_type() {
    $args = array(
        'public'             => true,
        'publicly_queryable' => false, // 詳細ページを無効化
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => false, // クエリ変数を無効化
        'rewrite'            => false, // リライトルールを無効化
        'capability_type'    => 'post',
        'has_archive'        => false, // アーカイブページを無効化
        'hierarchical'       => false,
        'menu_position'      => 5,
        'supports'           => array('title', 'editor', 'thumbnail') // パーマリンクのサポートを外す
        // 'supports' に 'page-attributes' を含めないことで、スラッグ(パーマリンク)の入力欄が表示されなくなります
    );
    
    // カスタム投稿タイプを登録
    register_post_type('your_custom_post_type', $args);
}
add_action('init', 'register_custom_post_type');


/**
 * すでに登録済みのカスタム投稿タイプの場合は、以下のコードでサポート項目を変更できます
 */
function modify_post_type_supports() {
    // パーマリンクのサポートを削除
    remove_post_type_support('your_custom_post_type', 'page-attributes');
}
add_action('init', 'modify_post_type_supports', 11);

/**
 * 編集画面でパーマリンク編集部分を非表示にするCSS
 */
function hide_permalink_css() {
    global $post_type;
    
    // 特定のカスタム投稿タイプの場合のみ適用
    if ($post_type == 'your_custom_post_type') {
        echo '<style type="text/css">
            #edit-slug-box,
            #titlediv .inside {
                display: none !important;
            }
        </style>';
    }
}
add_action('admin_head-post.php', 'hide_permalink_css');
add_action('admin_head-post-new.php', 'hide_permalink_css');


/**
 * 一覧画面から「表示」ボタンを非表示にする
 */
function remove_view_button($actions, $post) {
    // 特定のカスタム投稿タイプの場合のみ適用
    if ($post->post_type === 'your_custom_post_type') {
        // 「表示」リンクを削除
        unset($actions['view']);
    }
    return $actions;
}
add_filter('post_row_actions', 'remove_view_button', 10, 2);
?>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?