Ответы в темах

Просмотр 15 ответов — с 16 по 30 (всего 52)
  • В slide_page() через switch, перечисляются действия типа add, edit, delete. Каждое действие обрабатывается кнопкой. Редирект нужен по кнопке. И эта же функция отвечает за создание пункта меню в админке.

    function add_admin_sub_menu()
    {
    	add_submenu_page(basename(__FILE__), 'Slides', 'Slides', 8,basename(__FILE__), 'slide_page');
    }
    
    //функция , которая отвечает за обработку действий
    function slide_page()
    {
       if (isset($_GET['action']))
          $action =  $_GET['action'];
       else
          $action = '';   
    
       switch ($action):
    	  case 'add_data':
    
               //если нажата кнопка
                 if ($btn_sld_add) {
                  ......
                   <strong>//Здесь нужен редирект
                    add_action('admin_init', 'sld_redirect');</strong>
                break;
          ....
       endswitch;
                 }

    Наверное при такой структуре, редирект никак не получится, менять ее не хочется, потому что все уже отлажено, что-то идей нет никаких по этому поводу.

    Никак не получается обрабатывать вне slide_page(). Но решила попробовать как вообще работает перенапрвление, написала прямо в теле плагина:

    function sld_redirect() {
    
       wp_redirect(admin_url().'admin.php?page='.basename(__FILE__).'&action=');
    }
    add_action('admin_init', 'sld_redirect');

    В ответ получила вот это, хотя куки у меня включены и URL, на который идет редирект при копировании в браузер работает нормально:

    Неверное перенаправление на странице. Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится. Эта проблема может возникать при отключении или запрещении принятия кук.

    Что это может быть?

    slide_page — отвечает за построение меню и обработку действий на странице меню:

    function add_admin_sub_menu()
    {
    	add_submenu_page(basename(__FILE__), 'Slides', 'Slides', 8,basename(__FILE__), 'slide_page');
    }

    А как можно тогда поступить? Мне нужно делать это именно по нажатию на кнопку, которая обрабатывается в slide_page

    Сделала так:

    function sld_redirect() {
    
       wp_redirect(admin_url().'admin.php?page='.basename(__FILE__).'&action=');
    }
    
    //функция , которая отвечает за обработку действий
    function slide_page()
    {
       if (isset($_GET['action']))
          $action =  $_GET['action'];
       else
          $action = '';   
    
       switch ($action):
    	  case 'add_data':
    
               //если нажата кнопка
                 if ($btn_sld_add) {
                  ......
                    add_action('admin_init', 'sld_redirect');
                 }

    Почему-то перенаправление не срабатывает.

    Спасибо большое за ответ, извините, что сразу не отписалась, было много работы. Да Вы правы, страницы edit_data действительно не существовало. Вот как я сделала:
    Меню создаю, так что все нужные мне действия обрабатывает одна функция, а не разные как было раньше:

    function add_admin_menu()
    {
    add_menu_page('Add-in', 'Add-in', 8,basename(__FILE__), 'data_page');
    }
    //Create submenu pages for "Add-in"
    function add_admin_sub_menu()
    {
    add_submenu_page(basename(__FILE__), 'Data', 'Data', 8,basename(__FILE__), 'data_page');
    }

    А ссылки формируются так:
    <a href="<?echo admin_url();?>admin.php?page=<?echo $_GET['page'];?>&action=edit_data&slide=<?echo $val['id'];?>"><?_e('Редактировать')?></a>
    А в файле плагина анализируется параметр action.

    Спасибо еще раз, Вы мне очень помогли.

    Спасибо, поняла наконец-то, после долгих размышлений :).

    И последний вопрос: значит нет спец. функций в WP, чтоб обрезать по одному параметру? Вообще, где можно посмотреть все функции для работы с изображениями. Я просмотрела файл:\wp\wp-includes\media.php, потому что там объявляется image_make_intermediate_size() и ничего соответствующего не нашла.

    До меня дошло :). Отношение ширины к высоте для картинки 600х400, равно 1,5. Соответственно, чтобы сохранить эту пропорцию, новая высота получается 442/1,5 = 295.
    Но вопрос все равно остался, какую роль тут играет большой размер высоты? Объясните ,пожалуйста, если можно.

    Изображение масштабируется таким образом, чтобы укладываться в измерение с максимальной величиной.

    Я не понимаю, что это значит. Как получилось 295? Что в моем примере принимается за макисмальную величину.

    Спасибо за ответ!
    1. $crop пробовала — не подходит , потому что он именно обрезает изображение, хотя и делает его точно соответствующим размерам. а мне нужно масштабируемое. Просто искала функцию, которая к примеру обрезает по какой-то одной величине: высоте или ширине. Но ничего не нашла.

    Или, если высота не должна быть фиксированной, указать для неё большую величину.

    Указала 1000 вместо 142, работает как надо, но я не понимаю почему так происходит. Объясните, пожалуйста, если это не трудно.

    Изображение масштабируется таким образом, чтобы укладываться в измерение с максимальной величиной.

    То есть если я гружу картинку с размером 600х400, в функции обрезки стоит 442х1000, то максимальное измерение = 1000 , а дальше что???

    2. Буду пробовать.

    Автор Bagira

    (@bagira)

    спасибо большое за ответ, буду пробовать.

    Автор Bagira

    (@bagira)

    Да, Вы правы. То есть решение отображать все посты по порядку в данной ситуации единственное верное?
    В связи с этим у меня такой немного отвлеченный вопрос: Если к примеру просто надо вывести в админке структуру (не будем исключать повторяющиеся записи, а выведем просто все, что есть):
    Категория1
    Пост1
    Пост2
    Категория2
    Пост3
    Пост4
    Каким образом привязать посты к соответствующим категориям. Просто я не вижу связи между таблицей постов и таблицами категорий. Возможно я чего-то не понимаю, объясните, пожалуйста , как это можно сделать.

    Автор Bagira

    (@bagira)

    А что будете делать с записями, которые одновременно в нескольких рубриках?

    Спасибо за вопрос, я об этом не подумала.

    И в чем, собственно, суть вопроса? Что не так с вашим кодом?

    С кодом все в порядке.
    Вопрос: Сейчас записи отображаются в списке все подряд из всех категорий. Мне казалось, что если указать разбиение на категории, то пользователю будет проще ориентироваться в списке страниц, потому что это будет соответствовать иерархии страниц на сайте (этот список нужен для привязки страницы к картинке, для формирования рекламного блока на сайте). То есть
    Категория1
    Пост1
    Пост2
    Категория2
    Пост3
    Пост4
    Не знаю, как привязать категории к постам. Понятно, что категории можно вытянуть из таблицы, а дальше — как соответствие им постов организовать?

    Спасибо большое за ответ,Вы мне очень помогли.

    Спасибо за ответ, разобраться бы еще, почему этачменты из других категорий используют мой частный шаблон.

    Кстати, а чего делают шаблоны в WP_PLUGIN_DIR? Им бы со своими родственниками в TEMPLATE DIR было бы уютнее.

    Так мне нужно заменять шаблон при помощи плагина. То есть человек хочет плагин, с помощью которого можно будет создавать специфические посты в конкретную категорию. Исходя из такой задачи, я должна поставлять шаблон вместе с файлом плагина, мне кажется для человека, не шарящего в системе вордпресс и в программировании так будет легче. Поэтому и возник вопрос, как это лучше сделать именно с помощью плагина, а не вручную копировать новый шаблон или редактировать вручную тот, который уже стоит.

    function post_on_one () {
    
       if (is_single() && in_category('1') && !(is_attachment())) {
    
          include( 'template/single-1.php');
          exit;
       }
    }
    
    add_action('template_redirect', 'post_on_one');

    Здесь папка template/single-1.php тоже входит в состав плагина.

Просмотр 15 ответов — с 16 по 30 (всего 52)