Intereting Posts
Как перекрыть подключаемую функцию Как сделать изотоп и WordPress работать вместе? Если пользовательский поиск по категориям, а затем страница 2 не найден получить все сообщения, связанные с пользовательской таксономией Изменение моего URL-адреса Можно ли переименовать каталог загрузки woocommerce? перевод не работает для 'Home' как предотвратить отображение определенной категории на панели управления администратора для определенных пользовательских ролей? Как создать дочернюю тему для сайта, на котором уже есть много настроек? Могу ли я установить post_type query_var при нажатии ссылки? Использование как honeypot, так и captcha Как вызвать конкретную функцию, когда флажок установлен на странице параметров плагина Если зарегистрированный пользователь meta Как получить таксономические условия по ID в определенном порядке Добавление фразы перевода в WordPress Theme

Изменить значение переменной для разных атрибутов короткого кода?

Предположим, у меня есть функция, которая должна иметь возможность загружать файл в зависимости от атрибута в коротком коде:

[open_file ex1] 

Как мне определить, какое имя файла задано как $csv зависимости от атрибута, указанного в коротком коде?

Этот код ниже не работает, но иллюстрирует то, что я пытаюсь сделать.

 function open_file($atts) { if ($atts = "ex1") { $csv = "ex1.csv" } elseif ($atts = "ex2") { $csv = "ex2.csv" } elseif ($atts = "ex3") { $csv = "ex3.csv" 

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

Вы можете попробовать одно из следующих действий ( я не выполнил никаких проверок, вы, вероятно, будете проверять, что атрибут не пуст и что файл существует до того, как он что-то возвращает в коротком коде )

ОПЦИЯ 1

Передача полного имени файла (мой личный выбор)

 add_shortcode( 'open_file', 'custom_file' ); function custom_file( $atts ) { $attributes = shortcode_atts( array( 'file' => '', ), $atts ); return $attributes['file']; } 

Используйте его, как следует

 [open_file file='ex1.csv'] 

ВАРИАНТ 2

Передача префикса атрибуту

 add_shortcode( 'open_file', 'custom_file' ); function custom_file( $atts ) { $attributes = shortcode_atts( array( 'file' => '', ), $atts ); $filename = $attributes['file'] . '.csv'; return $filename; } 

Используйте его, как следует

 [open_file file='ex1'] 

Делая это с помощью любого из приведенных выше методов, вы удалите очень длинное и ненужное if/else выражение