Я разрабатываю плагин WordPress и используя Tareq's WordPress Settings API для разработки моей страницы настроек.Как использовать foreach и if statement в массиве массивов?
С API я показываю элементы флажка. Однако я хочу показать дополнительные флажки, используя операторы foreach
и if
.
foreach
: это будет отображать дополнительные флажки для каждого поля вwp_get_user_contact_methods()
if
: это будет отображать дополнительный набор флажков, если другой плагин активирован
Это то, что я прямо сейчас исходя из моей собственной логики:
$settings_fields = array(// Parent array
'dsbl_basics' => array(// Child array
array(// Child's child array
'name' => 'text_val',
'label' => __('Text Input', 'dsbl'),
'type' => 'text',
'default' => 'Title',
'sanitize_callback' => 'intval'
)
),
'dsbl_profile' => array(// Child array
array(// Child's child array
'name' => 'name',
'label' => __('Name', 'dsbl'),
'type' => 'multicheck',
'options' => array(
'first_name' => 'First Name',
'last_name' => 'Last Name'
)
),
array(// Child's child array
'name' => 'contact_info',
'label' => __('Contact Info', 'dsbl'),
'type' => 'multicheck',
'options' => array(
'url' => 'Website',
foreach (wp_get_user_contact_methods() as $value => $label) { // Additional contact fields
$value => $label
}
)
),
if (is_plugin_active('wordpress-seo/wp-seo.php')) { // If plugin exists
array(// Child's child array
'name' => 'yoast_seo',
'label' => __('Yoast SEO', 'dsbl'),
'type' => 'multicheck',
'options' => array(
'wpseo_author_title' => 'Title to use for Author page',
'wpseo_author_metadesc' => 'Meta description to use for Author page'
)
),
}
)
);
Я знаю, что мой синтаксис выключен, что дает мне эти ошибки:
Ошибка синтаксического анализа: ошибка синтаксиса, неожиданный
foreach
(T_FOREACH), ожидая)
Ошибка синтаксического анализа: ошибка синтаксиса, неожиданный
if
(T_IF), ожидая)
Каков правильный подход к этому?
.... Не помещайте Еогеасп и если положения внутри вашего массива, что это не так, как это работает. – Epodax
@Epodax Вместо того, чтобы говорить мне, что я не могу сделать, можете ли вы объяснить, что еще я могу сделать для достижения тех же результатов? –
Переместите свой foreach и if из вашего массива, присвойте значения из вашего предложения foreach/if переменным и используйте эти переменные в вашем большом массиве. - Пожалуйста, не просто сбрасывайте код вместе и ожидайте, что мы его исправим. – Epodax