Основная сложность это заставить увидеть ВП папку wp-content, которая находится в другом месте.
Неужели апач не может как-то подвязать C:\gulp\projects к текущему виртуальному хосту, чтобы эта директория также была "видна"? Просто думаю что это является основной проблемой и я не верю что апач не может этого сделать.
ln -s
, мелкософт вроде же развивается...если есть возможность сконфигурировать апач так как я задумал?
Либо же прошу подсказать как лучше расположить все, используя только одно ядро ВП
по поводу симлинков я так понял вы говорите что можно как-то дать ссылку на папку wp-content конфигу ВП. Как это правильно сделать?
Я просмотрел ваш репозиторий, суть в принципе понятна, но там опять таки предлагается использовать свое ядро в каждый новый проект, то есть не так как я задумал, принцип похож на roots/bedrock.
Я задал вопрос, что бы определить оптимальный путь для меня
Ну и немаловажно скорость работы получившегося сервиса, особенно на выдачу обрезанной картинки по запросу
Я так понимаю нарезка должна производится один раз, а потом уже просто отдаваться сохраненная копия.
Может уже есть какие то готовые сборки с подобным функционалом?
это вылилось в ту же проблему что и с the_excerpt(). Форматирование текста нарушается и ссылки становятся не кликабельными
$content = strip_tags($content);
<a href="https://some.url/
, а закрывающая часть ">
будет обрезана, потому что достигнут лимит в 200 символов. И все, с этого места и до конца страницы у вас одна большая сломанная ссылка. Чтобы этого не произошло, теги вырезаются.и я так понял вы в регулярке зашифровали слово any? Почему просто не написать any?
/**
* Trim content on archive pages.
*
* @param string $content
* @return string
*/
function trim_content_on_archive($content)
{
// If we're on archive page, modify content.
if (is_archive())
{
// Strip all HTML tags so they don't break your layout.
$content = strip_tags($content);
// Trim content to 200 characters but make sure the words aren't chopped.
$content = preg_replace('/\s+?(\S+)?$/', '', substr($content, 0, 201));
// Append ellipsis to the end of the string.
$content .= ' ...';
}
// Return the (optionally modified) content from the filter.
return $content;
}
add_filter('the_content', 'trim_content_on_archive');
function university_adjust_queries($query){
if ( ! is_admin() && is_post_type_archive( 'event' ) && $query->is_main_query() ) {
$query->set( 'meta_key', 'event_date' );
$query->set( 'orderby', 'meta_value_num' );
$query->set( 'order', 'ASC');
$query->set( 'meta_query', array(
array(
'key' => 'event_date',
'compare' => '>=',
'value' => date('Ymd'),
'type' => 'numeric',
)
) );
}
}
add_action( 'pre_get_posts', 'university_adjust_queries' );
SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) WHERE 1=1 AND (
wp_term_relationships.term_taxonomy_id IN (7)
) AND (
wp_postmeta.meta_key = 'start_date'
) AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'acf-disabled' OR wp_posts.post_status = 'tribe-ea-success' OR wp_posts.post_status = 'tribe-ea-failed' OR wp_posts.post_status = 'tribe-ea-schedule' OR wp_posts.post_status = 'tribe-ea-pending' OR wp_posts.post_status = 'tribe-ea-draft' OR wp_posts.post_status = 'private') GROUP BY wp_posts.ID ORDER BY wp_postmeta.meta_value+0 ASC LIMIT 0, 10
1. В гит попадает только кастомный код, для всего остального есть composer
2. База данных может только копироваться с прода на тестовый, ни в коем случае не обратно
3. То же самое с загрузками, они или синхронизируются с прода rsync'ом, или проксируются локальным сервером на прод
4. Права на установку плагинов (и прочие нежелательные действия) можно (и нужно) у контент-менеджеров забрать
5. Большинство других действий автоматизируются с помощью wp-cli