Задавайте вопросы по курсам WordPress

Удаляем подменю Темы. Выводим ошибки на странице темы. Метабокс для аудио файлов.

Удаляем подменю Темы

Добавление кода в файл 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] );
        }
}

delete sub menu themes

 

Выводим сообщения об ошибке

Добавление текста ошибки и вывод ее на странице выбора темы. Просто добавляем код в файл 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];
        }

metabox wordpress

Второй код вставляем в то место вашей темы, где необходимо вывести адрес прикрепленного файла.

<?
        audio_file_url()
?>

Далее загружаем новый файл и выбираем его в созданном метабоксе, после чего он будет отображен на странице в нужном месте. Удачи в разработке.


Купить хостинг WordPress
/* Репетитор по wordpress
Услуги репетитора онлайн. Список курсов которые я веду
  • Базовый курс по веб-дизайну;
  • Верстка сайтов;
  • Общий курс по CMS WordPress и продолжение курса по разработке шаблонов;
  • Разработка сайтов на PHP.
Подробнее читайте на странице репетитор по WordPress
*/

Николаенко Максим

Директор веб-студии ProGrafika. Занимаюсь разработкой, дизайном и продвижением веб-сайтов. Всегда рад новым читателям блога и хорошим клиентам.


Вам может также понравиться...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Шаблоны для WordPress
Самый лучший хостинг в Украине
Стабильный хостинг для Drupal