Можно добавить подобный фрагмент в functions.php
активной темы:
function custom_upload_path( $uploads ) {
if ( ! isset( $_REQUEST['post_id'] ) )
return $uploads;
$uploads['path'] .= '/' . $_REQUEST['post_id'];
$uploads['url'] .= '/' . $_REQUEST['post_id'];
if ( ! wp_mkdir_p( $uploads['path'] ) ) {
$message = sprintf( __( 'Unable to create directory %s. Is its parent directory writable by the server?' ), $uploads['path'] );
return array( 'error' => $message );
}
return $uploads;
}
add_filter( 'upload_dir', 'custom_upload_path' );
Для файлов, прикреплённых к записи, в wp-content/uploads
будет создаваться подкаталог с именем, равным ID записи.
Модератор
Юрій
(@yube)
будет создаваться подкаталог с именем, равным ID записи.
Стоит иметь в виду, что если записей будет много (десятки тысяч), могут возникнуть серьезные проблемы.
К счастью, на сайте, где был реализован этот приём, записей не так много 🙂
Стоит иметь в виду, что если записей будет много (десятки тысяч), могут возникнуть серьезные проблемы.
Но можно ж добавить год/месяц/ перед $_REQUEST['post_id'];
?
(я, к сожалению, без манов по пхп\ВП не скажу как это сделать.)
Модератор
Юрій
(@yube)
Можно. Но это уже будет немного другое решение 🙂
Sergey Biryukov, спасибо за код.
Юрий, а какие серьезные проблемы?
Модератор
Юрій
(@yube)
Сначала будет тормозить, потом может совсем перестать работать. Зависит от хост-системы и её настроек.