답변:
조치 후크 이름을 명확하게하려면 다음을 수행하십시오.
global $pagenow;
if ( 'plugins.php' === $pagenow )
{
// Better update message
$file = basename( __FILE__ );
$folder = basename( dirname( __FILE__ ) );
$hook = "in_plugin_update_message-{$folder}/{$file}";
add_action( $hook, 'your_update_message_cb', 20, 2 );
}
자체가 한 두 가지 기능 $variables
: 연결 $plugins_data
및 $r
플러그인에 액세스 얻을 수 있습니다.
/**
* Displays an update message for plugin list screens.
* Shows only the version updates from the current until the newest version
*
* @param (array) $plugin_data
* @param (object) $r
* @return (string) $output
*/
function your_update_message_cb( $plugin_data, $r )
{
// readme contents
$data = file_get_contents( 'http://plugins.trac.wordpress.org/browser/YOUR_PLUGIN_FOLDER_NAME_IN_THE_OFFICIAL_REPO/trunk/readme.txt?format=txt' );
// assuming you've got a Changelog section
// @example == Changelog ==
$changelog = stristr( $data, '== Changelog ==' );
// assuming you've got a Screenshots section
// @example == Screenshots ==
$changelog = stristr( $changelog, '== Screenshots ==', true );
// only return for the current & later versions
$curr_ver = get_plugin_data('Version');
// assuming you use "= v" to prepend your version numbers
// @example = v0.2.1 =
$changelog = stristr( $changelog, "= v{$curr_ver}" );
// uncomment the next line to var_export $var contents for dev:
# echo '<pre>'.var_export( $plugin_data, false ).'<br />'.var_export( $r, false ).'</pre>';
// echo stuff....
$output = 'whatever you want to do';
return print $output;
}
각주:
이 방법은 내부 링크 검사기 플러그인 에서 찾을 수 있습니다 .
부가:
plugin_basename(__FILE__)
위의 두 줄 대신 사용할 수 있습니다. 또한 현재 페이지가 플러그인 페이지인지 확인하는 것은 실제로 해당 페이지에서만 함수를 호출하기 때문에 실제로는 필요하지 않습니다. (매우 미미한) 이점은 여전히 다른 콜백이 연결되어 있지 않다는 것입니다. 이 답변은 꽤 오래 되었으므로이 방법은 여전히 문제없이 작동하지만 이제는에서 반환 한 객체를 확인하십시오 get_current_screen()
.