init
, after_setup_theme
, фильтры контента, регулярки, может даже js $e->href = 'my link';
->find()
, будет критическая ошибкаremoveAttribute()
- это функция js, а не phpfile_put_contents()
возвращает false, в случае ошибки, пишите это условие для дебага ->clear()
. По какой-то причине он все равно остается в переменной, поэтому я делаю еще и unset()
. Закрывать директорию нужно после всех операцию, а не посреди циклаif ( $dh = opendir($dir) ) {
$data = file_get_html('index.html');
foreach( $data->find('div') as $div ){
if ( $div->class == 'col-md-12' ) {
$div->class = 'col-12 col-md-6';
}
}
$data->clear();
unset($data);
closedir($dh);
}
pathinfo()
$string = 'site.by/cat/subcat/name/';
var_dump(pathinfo($string, PATHINFO_BASENAME)); // выводим "name"
explode()
$string = 'site.by/cat/subcat/name/';
$string = preg_replace('/(\/)$/', '', $string); // убираем последний слеш если есть
$array = explode('/', $string); // делим строку на массив
$array = array_reverse($array); // переворачиваем
var_dump($array[0]); // выводим первый элемент "name"
$string = 'site.by/cat/subcat/name/';
$name = preg_replace('/(([\w\d\-\_\:\.\/]+)\/([^\/]+)[\/]?)$/', '$3', $string);
var_dump($name); // выводим "name"
$myQuery = new WP_Query( [
'meta_query' => [
'relation' => 'OR',
'price_exists' => [
'relation' => 'AND',
[
'key' => '_project_price',
'value' => $price_from,
'type' => 'DECIMAL',
'compare' => '>='
],
[
'key' => '_project_price',
'value' => $price_to,
'type' => 'DECIMAL',
'compare' => '<='
],
],
'price_empty' => [
'key' => '_project_price',
'compare' => 'EXIST',
],
],
'orderby' => [
'price_exists' => 'ASC',
'price_empty' => 'DESC',
],
] );
BETWEEN
найдет все ключи с заданным диапазоном между $price_from и $price_to, а второй NOT BETWEEN
- которые в диапазон не входят$myPosts = get_posts( array(
'numberposts' => -1,
'post_type' => 'product',
) );
foreach ( $myPosts as $key => $myPost ) {
// проверяем, что поля не существует
if ( get_post_meta( $myPost->ID, '_project_price', true ) == false ) {
update_post_meta( $myPost->ID, '_project_price', '' ); // пишем в него пустое значение
}
}
save_post
, чтобы при сохранении поста добавлялось пустое значение, если оно не указано $string = "[id875783012|Alex]";
$string = preg_replace('/[\D]+/', '', $string);
$string = 'id' . $string;
var_dump($string);
preg_match()
так:$string = "[id875783012|Alex]";
$regexp = "/id(?<id>[\d]+)\|/";
$reglink = preg_match($regexp, $string, $match);
$id = $match['id'];
var_dump($id);
register_post_type()
и таксономии к нему register_taxonomy()
<div class="row">
<div class="col-12 col-lg-6">
<div class="item"></div>
</div>
<div class="col-12 col-lg-6">
<div class="item"></div>
</div>
<div class="col-12 col-lg-6">
<div class="item"></div>
</div>
<div class="col-12 col-lg-6">
<div class="item"></div>
</div>
<div class="col-12 col-lg-6">
<div class="item"></div>
</div>
<div class="col-12 col-lg-6">
<div class="item"></div>
</div>
</div>
$arr_1 = '{
"description": "DESC",
"affter": {
"text": "TEXT"
}
}';
$arr_2 = '{
"name": "Название",
"description": "Описание",
"affter": {
"text": "после",
"icon": "иконка до"
}
}';
$arr_1 = json_decode( $arr_1, true );
$arr_2 = json_decode( $arr_2, true );
$arr_all = array_replace_recursive( $arr_2, $arr_1 );
var_dump( $arr_all );