Используйте добавить фильтр для связанной строковой переменной
У меня есть таблица HTML, которую я объединяю следующим образом:
$admin_table_output .= "Item Description: </td><td>";
$admin_table_output .= "<input type='text' name='name' value='$name'></td><td> (Optional)</td></tr><tr><td colspan='4'>";
$admin_table_output выводится эхом в конце. Это работает просто отлично.
Моя проблема в том, что я хочу использовать apply_filters для изменения переменной $admin_table_output следующим образом:
$admin_table_output .= "Item Description: </td><td>";
apply_filters('tabs_page_static_value',$admin_table_output);
$admin_table_output .= "<input type='text' name='name' value='$name'></td><td> (Optional)</td></tr><tr><td colspan='4'>";
Используя такой крючок:
function tabs_page_static_value_filter($admin_table_output) {
$admin_table_output .= 'testing';
return $admin_table_output;
}
add_filter('tabs_page_static_value','tabs_page_static_value_filter',10,1);
Однако это не работает. Я также попытался использовать вместо этого do_action, я попытался повторить переменную вместо того, чтобы возвращать ее, а также не объединять внутри крючок.
Я думаю, что мне, возможно, придется сделать что-то вроде переменной переменной, чтобы решить эту проблему. Есть какие-нибудь идеи?
1 answers
Как @Sally упоминает в комментарии. если вы хотите, чтобы другие могли расширить HTML-код. вы также должны добавить новый HTML-код, который они возвращают в фильтр.
Попробуйте использовать код ниже
$admin_table_output .= "Item Description: </td><td>";
$admin_table_output = apply_filters('tabs_page_static_value',$admin_table_output);
$admin_table_output .= "<input type='text' name='name' value='$name'></td><td> (Optional)</td></tr><tr><td colspan='4'>";