<ul>
можно вкладывать только элементы <li>
// Использование [tag-list field="метки_и_ссылки" class="tag-list"]
add_shortcode( 'tag-list', 'get_custom_tag_list' );
function get_custom_tag_list( $atts ) {
// белый список параметров и значения по умолчанию для шорткода
$atts = shortcode_atts( array(
'class' => 'list',
'field' => '',
'post_id' => 0
), $atts );
$output = '';
$post = get_post( $atts['post_id'] );
if ( isset( $post->ID ) && !empty($atts['field']) ) {
$tags = get_field_object( $atts['field'], $post->ID );
if ( $tags ) {
$output .= '<ul class="' . $atts['class'] . '">';
foreach ( $tags['value'] as $key => $value ) {
$output .= '<li class="' . $atts['class'] . '__item" >';
$output .= '<a class="' . $atts['class'] . '__link" href="' . $value->description . '" rel="tag">' . $value->name . '</a>';
$output .= '</li>';
}
$output .= '</ul>';
}
}
return apply_filters( 'get_custom_tag_list', $output );
}
$mask = array();
$mask['type'] = 'FeatureCollection';
foreach ( $variable as $key => $value ) {
$mask['features'][] = array(
"type" => 'Feature',
"id"=> $key,
"geometry" => array (
"type" => 'Point',
"coordinates" => [(float) $value->lat, (float) $value->long],
),
"properties" => array (
"balloonContentBody" => "<strong class='map-title'><a class='link' href='" . $value->post_link . "'>" . $value->post_title . "</a></strong>",
"balloonContentFooter" => "<a class='hidden' href='#'>Я был здесь!</a>",
"clusterCaption" => "<strong>" . $value->post_title . "</strong>",
"hintContent" => "<strong>" . $value->post_title . "</strong>"
)
);
}
json_encode( $mask )
передать в обработчик как в этом примере https://yandex.ru/dev/maps/jsbox/2.1/object_manager/ // стартовый массив
$items = [
1 => array(
"description" => "Наименование товара 1",
"quantity" => "2.00",
"value" => "250.00",
"currency" => "RUB",
),
2 => array(
"description" => "Наименование товара 2",
"quantity" => "1.00",
"value" => "100.00",
"currency" => "RUB",
)
];
// пересобираем для отправки
$array['receipt']['customer']['full_name'] = 'Иванов Иван Иванович';
$array['receipt']['customer']['phone'] = '79000000000';
foreach ( $items as $key => $item ) {
$array['receipt']['items'][] = [
"description" => $item['description'],
"quantity" => $item['quantity'],
"amount" => array(
"value" => $item['value'],
"currency" => $item['currency'],
),
"vat_code" => "2",
"payment_mode" => "full_prepayment",
"payment_subject" => "commodity"
];
}
var_dump($array);
$item['description']
, $item['quantity']
и т.д. pre_get_posts
. Вот пример правильной подмены post_type в таксономии:add_action( 'pre_get_posts', 'custom_pages_cases', 1 );
if ( ! function_exists( 'custom_pages_cases' ) ) {
function custom_pages_cases( $query ) {
// Выходим, если это админ-панель или не основной запрос
if( is_admin() || ! $query->is_main_query() )
return;
if( $query->is_post_type_archive('instructor') || $query->is_tax('instructors') ) {
$query->set( 'post_type', 'trainer' );
}
}
}
wp_redirect()
add_action( 'template_redirect', 'rider_redirect_canonical' );
function rider_redirect_canonical() {
if ( is_single() && ( 'instructor' === get_post_type() ) ) {
$post_slug = get_post_field('post_name');
// получаем id записи в другом post_type по текущему слагу
$args = array( 'name' => $post_slug, 'post_type' => 'trainer', 'post_status' => 'publish', 'numberposts' => 1 );
$post_id = get_posts($args)[0]->ID ?: '0';
if ( $post_id != '0' ) {
wp_redirect( get_permalink($post_id), 301 );
exit();
}
}
}
wp_insert_post()
// Создаем массив
$post_data = array(
'post_title' => 'Заголовок записи',
'post_content' => 'Здесь должен быть контент (текст) записи.',
'post_status' => 'publish',
'post_author' => 1,
'post_category' => array(8,39)
);
// Вставляем данные в БД
$post_id = wp_insert_post( wp_slash($post_data) );
$custom_value
передаете новое значение для ссылки. Измененный текст у вас по прежнему в переменной $html$html = file_get_html($file_path);
// получаем ссылку
$link = $html->find( 'a.like', 0 );
$link->href = $custom_value;
$html->clear();
unset($html);
$html = file_get_html($file_path);
// получаем ссылку
$link = $html->find( 'a.some-class', 0 )->href;
$html->clear();
unset($html);
if ( file_exists( $file_path ) ) {
$html = file_get_html($file_path);
// получаем r-attr
$r_attr_text = $html->find( '.r-attr a', 0 )->plaintext;
$r_attr_link = $html->find( '.r-attr a', 0 )->href;
// получаем ссылки на изображения
$images = $html->find( '#msgood-gallery img' );
foreach ( $images as $key => $image ) {
$link = $image->src;
}
$html->clear();
unset($html);
}
<p>
, то мы можем ->innertext
заменить переводом, после чего у нас в переменной $html будет уже переведенный текст$paragraphs = $html->find( 'p' );
foreach ( $paragraphs as $key => $paragraph ) {
$paragraph->innertext = get_translate($paragraph->innertext);
}
<span>
, <strong>
и хуже всего <a>
. С ними сложнее, но если знать в каком точно формате их переводит переводчик, то регуляркой можно заменить обратноget_the_date()
и the_time()
должна быть определена переменная $post. Чтобы ее определить нужно получать посты из базы с помощью wp_query()
или get_posts()
и установить ее в цикле с помощью setup_postdata($post)
getNews()
у вас я не знаю, а писать переменные кириллицей моветон