Контакты
Местоположение
Россия

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (14)

Лучшие ответы пользователя

Все ответы (43)
  • Как добавить в массив с json строкой еще одну строку?

    Не совсем понятно, что вы хотите сделать в итоге. Если вы добавляете какие-то данные в массив, то вы должны его сначала получить, а при добавлении проверять, нет ли в нем уже таких же данных, которые вам прилетают в $request. Обычно это делается по id или slug, но у вас ни того, ни другого нет, поэтому для примера соберем все заголовки $titles из полученного массива:

    $descriptionJson = json_decode(file_get_contents($path), true);
    
    $titles = array();
    foreach ( $descriptionJson as $key => $descriptionJsonValue ) {
    	$titles[] = $descriptionJsonValue['title'];
    }


    Теперь, видимо, вы делаете какой-то запрос и получаете ответ в виде объекта. Назову его $requests. Вам нужно получить кол-во элементов, чтобы добавлять новые с id+1 и проверять наличие заголовка в уже существующих данных:

    $count = count($requests); // получаем кол-во объектов для ключа
    
    foreach ( $requests as $key => $request ) {
    	if ( array_search($request->title, $titles) == false ) {
    		$count++;
    
    		$descriptionJson[$count]['title'] = $request->title;
    		$descriptionJson[$count]['thumbnail'] = ImageGenerator::imageDescriptions($request->file('photo'));
    		$descriptionJson[$count]['descriptions'] = $request->description;
    
    	}
    }
    
    $product->descriptions = json_encode($descriptionJson);
    $product->save();
    Ответ написан
  • Как сделать вывод дочерних подкатегорий на странице категории Woccommerce Wordpress?

    Функция woocommerce_product_subcategories() запрещена (устарела) с версии 3.3.1

    Выводите так:

    if ( is_product_category() ) {
    		$term = get_queried_object();
    		$taxonomy = $term->taxonomy;
    
    		echo '<h3>Категория: ' . $term->name . '<h3>'; // выводим текущую категорию
    
    		// получаем дочерние, если существуют
    		if ( $term_children = get_term_children( $term->term_id, $taxonomy ) ) {
    			echo '<ul>';
    				foreach ( $term_children as $key => $term_child ) {
    					$term_child = get_term_by( 'id', $term_child, $taxonomy );
    					// выводим дочерние
    					echo '<li><a href="' . get_term_link( $term_child->term_id, $taxonomy ) . '">' . $term_child->name . '</a></li>';
    				}
    			echo '</ul>';
    		}
    	}
    Ответ написан
  • Как правильно в вордпресс сравнить дату поста и текущую?

    Даты можно сравнивать только в одинаковом формате ISO; если даты в разных форматах вы можете привести их к одному в формат Unix функцией strtotime()

    Надеюсь эти примеры вам помогут

    $post_date = get_the_date( "Y-m-d" );	// дата поста
    $current_time = date( "Y-m-d H:i:s"  );	// текущее время
    $post_date_unix = strtotime($current_time);	// Unix
    $future_time = date( "Y-m-d H:i:s", strtotime($current_time . ' + 3 hours') ); // +3 часа от текущего времени
    Ответ написан
  • Как сделать Todo лист на JS на WordPress?

    Скорее всего логика вашего приложения будет выглядеть подобным образом:
    1. Создаете пост или cpt, в post_meta которого хранится массив вашего Todo листа
    2. При выводе на экран берете поле get_post_meta(), циклом выводите. Для каждого создаете скрытое поле input и кнопку "Редактировать"
    3. При клике "Редактировать" input становится visible
    4. Под списком две кнопки - "Добавить в список" и "Обновить"
    5. При клике "Добавить в список" в списке создается новое поле input, заполняете
    6. При клике "Обновить" отправляете POST или Ajax данные со всех input-ов на сервер. Там пересобираете массив для post_meta и кладете обратно update_post_meta()
    Ответ написан