После PHP код показывает WordPress медиа-файлы на пользовательском переднем концеОбрезка Wordpress Сообщение Заголовок
<?php
$args = array(
'post_type' => 'attachment',
'numberposts' => -1,
'post_status' => null,
'author' => $current_user->ID,
'post_parent' => $post->ID,
'caller_get_posts'=> 1,
);
$attachments = get_posts($args);
if ($attachments) {
foreach ($attachments as $attachment) {
echo '<tr><td><a href="'.wp_get_attachment_url($attachment->ID).'" rel="shadowbox" title="'.$attachment->post_excerpt.'">';
echo $attachment->_wp_attached_file;
echo '</a>
</td>
}
}?>
Приведенный выше код показывает полное имя файла на переднем конце. Если кто-то загрузить sssssssssssssssssssssssssssssssssssssssssssss.txt, 123457xxxxxxxxxxxxxxx.gif или XLS, PDF, DOCX и все другие расширения с различными длинными именами файлов это создать беспорядок на мою тему. Может кто-нибудь, пожалуйста, поможет мне, как обрезать имя файла и показать что-то вроде sssssss ... ssss.txt xxxxxx ... xxxx.pdf или gif на лицевой стороне?
Я попробовал следующую функцию для конкретного файла в functions.php до сих пор нет изменений
$wp_attached_file = 'sssssssssssssssssssssssssssssssssssssssssssss.txt';
echo preg_replace('/(.{3}).*(\..{2,4})/', '$1...$2', $wp_attached_file);
и
$attachment = $wp_attached_file;
echo preg_replace('/(.{3}).*(\..{2,4})/', '$1...$2', $wp_attached_file);
В настоящее время она работает, я заменяю следующие строки
echo ($attachment->_wp_attached_file);
с
echo preg_replace('/(.{15}).*(.{5})(\..{2,4})/', '$1...$2$3', $attachment->_wp_attached_file);
проверки настройки, так что пользователи не могут загрузить что-то подобное? –
Вы можете обрезать вывод с помощью регулярного выражения https://regex101.com/r/aR1vJ2/2. – chris85
Я не думаю, что регулярное выражение является подходящим решением для проверки или дезинфекции ввода пользователя. –