programing

wp-admin에서 페이지의 제목을 편집할 수 없도록 하려면 어떻게 해야 합니까?

powerit 2023. 6. 17. 09:48
반응형

wp-admin에서 페이지의 제목을 편집할 수 없도록 하려면 어떻게 해야 합니까?

나는 각 사이트에 페이지를 만들 수 있는 사용자들이 설치된 wp-network를 가지고 있습니다.

이러한 각 페이지는 기본 메뉴에 위치하며, 한 명의 사용자만 이 모든 메뉴를 만들 수 있는 권한을 가집니다.

제목이 아닌 페이지 내용만 편집할 수 있는 사용자를 작성합니다.

특정 사용자에 대한 관리 메뉴에서 편집할 페이지 제목을 비활성화하거나 기능에 대해 편집할 페이지 제목을 비활성화하려면 어떻게 해야 합니까?

제목 텍스트 상자를 숨기기 위해 관리자 CSS를 편집하는 것만 가능하다고 생각했지만, 두 가지 문제가 있습니다.

  1. 저는 물건을 숨기는 것을 좋아하지 않습니다.
    1. 관리자 CSS가 어디에 있는지 모르겠습니다.
    2. 저는 php는 알지만, 기능을 위해 요소에 css 숨김을 추가하는 방법을 모릅니다.

How do I want it to be

div#titlediv를 숨기려면 CSS를 사용해야 합니다.양식 제출, 유효성 검사 등이 원활하게 작동할 수 있도록 제목을 마크업에 표시하기를 원할 것입니다.

이 솔루션을 구현하기 위해 알아야 할 몇 가지 요소:

  1. current_user_can()은 현재 로그인한 사용자에게 기능 또는 역할이 있는지 테스트하는 부울 함수입니다.
  2. 별도의 CSS 파일에 저장하려면 admin_head 작업을 통해 스타일을 줄에 추가하거나 wp_enqueue_style을 사용하여 스타일을 추가할 수 있습니다.

여기 코드 조각이 있습니다. 이 코드 조각은 작업을 수행하고 적합한 위치에 배치합니다.당신의 테마에서 php는 작동합니다.네트워크에서 다른 테마를 사용하는 경우 네트워크 활성화 플러그인 안에 넣습니다.

<?php

add_action('admin_head', 'maybe_modify_admin_css');

function maybe_modify_admin_css() {

    if (current_user_can('specific_capability')) {
        ?>
        <style>
            div#titlediv {
                display: none;
            }
        </style>
        <?php
    }
}
?>

저는 문제를 해결했고, 검색 엔진을 사용하여 누군가가 여기에 오면, 저는 해결책을 게시합니다.

몇 가지 조사를 해보니 코드에서 제목 텍스트 상자가 삽입되는 부분을 찾았고, 사용자가 특정 기능을 가지고 있는지 알 수 있는 기능을 찾았습니다.

제목 텍스트 상자가 추가되는 파일은 /wp-admin/edit-form-advanced.php입니다.텍스트 상자 앞에 있는 줄입니다.

if ( post_type_supports($post_type, 'title') )

이거로 바꿨어요.

if ( post_type_supports($post_type, 'title') and current_user_can('edit_title') )

이렇게 하면 사용자에게 "edit_title"이라는 기능이 있을 때만 텍스트 상자가 추가됩니다.

이 IF 블록이 몇 줄 후에 끝날 때 다음과 같이 추가했습니다.

else echo "<h2>".esc_attr( htmlspecialchars( $post->post_title ) )."</h2>";

사용자에게 "edit_title" 기능이 없을 때 페이지 제목을 확인하고 편집하지는 않습니다.

그런 다음 사용자 기능과 역할을 편집하는 플러그인을 이미 설치하여 새 기능(edit_title)을 생성하고 원하는 역할에 할당할 수 있습니다.

언급URL : https://stackoverflow.com/questions/10015655/how-to-disable-pages-title-in-wp-admin-from-being-edited

반응형