사용자 지정 관리자 페이지가 add_options_page ()에 연결되지 않은 경우 설정 API 업데이트 메시지가 표시되지 않습니다.


9

설정 API를 가지고 놀았으며 add_options_page ()를 통해 설정 페이지가 WordPress 메뉴에 연결되어있을 때만 성공 또는 오류 메시지가 표시됩니다. add_dashboard_page ()와 같은 다른 것은 작동하지 않습니다. 이것이 사실인지 알고 싶습니까? 내가 시도한 샘플 코드 는 설정 API 외부에서 옵션을 업데이트하려는 경우 설정 API에 대한 register_settings를 후크 하는 위치에 "RegisteredSettingsTest"클래스가 포함 된 답변 입니까?

답변:


21

두 가지 제안 모두에 대한 Thanks Chip ( 우수한 설정 API 자습서 ) 및 t31os ( 빠른 테스트를위한 훌륭한 코드 스 니펫 ).

추가 파기를 수행하고 메뉴에 연결하면 settings_errors () 함수 가 호출 된 경우에만 기본 메시지가 실제로 표시 될 수 있음을 발견했습니다 .

예를 들어, 다음과 같이 t31os 코드를 수정하십시오.

<div class="wrap">
  <h2>Test</h2>
  <?php settings_errors(); ?>
  <form action="options.php" method="post">

매개 변수를 'error'또는 'updated'로 지정하여 성공 또는 실패 메시지를 표시하기 위해 add_settings_error () 함수를 호출하여 사용자 정의 오류 메시지를 추가 할 수도 있습니다 $type.


이것은 나에게도 잠시 걸려 넘어졌다! 사용하여 settings_errors();제시까지 후속을 게시, 덕분에 트릭을 않았다!
CommentLuv

10

테마와 설정 API 통합을 사용 add_theme_page()하고 사용 하며 관리자 알림 표시에 문제가 없습니다.

설정 API 제한이 아닌 코드에 문제가 있다고 생각합니다 .

실제 코드를 게시하여 코드 관련 문제를 해결하는 데 도움을 줄 수 있습니까?

편집하다

관리자 통지를 명시 적으로 출력해야 할 수도 있습니다. 예를 들어 다음은 설정 페이지 마크 업 기능에서 사용하는 것입니다.

<?php if ( isset( $_GET['settings-updated'] ) ) {
    echo "<div class='updated'><p>Theme settings updated successfully.</p></div>";
} ?>

오류 통지와 비슷한 작업을 수행 할 수 있다고 가정합니다.


업데이트 된 답변을 참조하십시오.
칩 베넷

내가 사용한 코드는 pastebin 에서 찾을 수 있습니다 . 내가 충분히 명확하지 않으면 사과합니다. 내가 관찰 한 것은 메뉴를 통해 메뉴에 연결하여 add_options_page()설정을 저장하면 "설정 저장"메시지가 표시됩니다. 내가 사용하는 코드를 변경할 경우, add_theme_page()또는 add_dashboard_page(), 디폴트 메시지가 표시되지 않습니다 "설정 저장".
Jesse van Couten

맞아 ... 위의 예에 따라 코드를 추가 했습니까? 설정 페이지 마크 업 기능에 명시 적으로 추가해야합니다.
칩 베넷

나는 테스트 코드를 사용하여 빌드 한 것을 아첨했다. 칩은 자신이 명시 적으로 통지를 추가해야한다는 것이 맞다. 설정 페이지에서 행운을 빕니다 Jesse .. :)
t31os
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.