Удаляем подменю Темы. Выводим ошибки на странице темы. Метабокс для аудио файлов.
Добавление кода в файл functions.php вашей темы, удалит для всех пользователей пункт Themes, кроме пользователя с указанным в коде id. Вы можете разрешить изменять темы только себе.
add_action( 'admin_init', 'slt_lock_theme' );
function slt_lock_theme() {
global $submenu, $userdata;
get_currentuserinfo();
if ( $userdata->ID != 1 ) {
unset( $submenu['themes.php'][5] );
unset( $submenu['themes.php'][15] );
}
}
Выводим сообщения об ошибке
Добавление текста ошибки и вывод ее на странице выбора темы. Просто добавляем код в файл functions.php.
add_action( 'admin_notices', 'custom_error_notice' );
function custom_error_notice(){
global $current_screen;
if ( $current_screen->parent_base == 'themes' )
echo '<div class="error"><p>Warning - If you modify template files this could cause problems with your website.</p></div>';
}Код проверил, все работает.
Метабокс для добавления аудио записей
Думаю, будет интересно поработать с кодом для вывода аудиофайла на странице при помощи метабокса. В метабоксе можно легко выбрать нужный аудио файл из медиа библиотеки.
Всего у нас будет два кода. Первый код вставляем в файл functions.php.
add_action("admin_init", "audio_init");
add_action('save_post', 'save_audio_link');
function audio_init(){
add_meta_box("mp3-audio", "MP3 AUDIO", "audio_link", "post", "normal", "low");
}
function audio_link(){
global $post;
$custom = get_post_custom($post->ID);
$link = $custom["link"][0];
$count = 0;
echo '<div class="link_header">';
$query_audio_args = array(
'post_type' => 'attachment',
'post_mime_type' =>'audio',
'post_status' => 'inherit',
'posts_per_page' => -1,
);
$query_audio = new WP_Query( $query_audio_args );
$audio = array();
echo '<select name="link">';
echo '<option class="audio_select">SELECT AUDIO FILE</option>';
foreach ( $query_audio->posts as $file) {
if($link == $audio[]= $file->guid){
echo '<option value="'.$audio[]= $file->guid.'" selected="true">'.$audio[]= $file->guid.'</option>';
}else{
echo '<option value="'.$audio[]= $file->guid.'">'.$audio[]= $file->guid.'</option>';
}
$count++;
}
echo '</select><br /></div>';
echo '<p>Selecting an audio file from the above list to attach to this post.</p>';
echo '<div class="audio_count"><span>Files:</span> <b>'.$count.'</b></div>';
}
function save_audio_link(){
global $post;
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){ return $post->ID; }
update_post_meta($post->ID, "link", $_POST["link"]);
}
add_action( 'admin_head', 'audio_css' );
function audio_css() {
echo '<style type="text/css">
.audio_select{
font-weight:bold;
background:#e5e5e5;
}
.audio_count{
font-size:9px;
color:#0066ff;
text-transform:uppercase;
background:#f3f3f3;
border-top:solid 1px #e5e5e5;
padding:6px 6px 6px 12px;
margin:0px -6px -8px -6px;
-moz-border-radius:0px 0px 6px 6px;
-webkit-border-radius:0px 0px 6px 6px;
border-radius:0px 0px 6px 6px;
}
.audio_count span{color:#666;}
</style>';
}
function audio_file_url(){
global $wp_query;
$custom = get_post_custom($wp_query->post->ID);
echo $custom['link'][0];
}Второй код вставляем в то место вашей темы, где необходимо вывести адрес прикрепленного файла.
<?
audio_file_url()
?>Далее загружаем новый файл и выбираем его в созданном метабоксе, после чего он будет отображен на странице в нужном месте. Удачи в разработке.
/*

- Базовый курс по веб-дизайну;
- Верстка сайтов;
- Общий курс по CMS WordPress и продолжение курса по разработке шаблонов;
- Разработка сайтов на PHP.







