Ответы пользователя по тегу WordPress
  • Как убрать завершающий слеш на конце тега?

    vasmor
    @vasmor
    Интересуюсь
    Как-то давно, не помню уже где, нашел такой сниппет:
    if ( ! is_admin() && ( ! defined( 'DOING_AJAX' ) || ( defined( 'DOING_AJAX' ) && ! DOING_AJAX ) ) ) {
        ob_start( 'html5_slash_fixer' );
    	$len = ob_get_length();
    	if ( $len && $len > 0 ) {
        	add_action( 'shutdown', 'html5_slash_fixer_flush' );
    	}
    }
    
    function html5_slash_fixer( $buffer ) {
        return str_replace( ' />', '>', $buffer );
    }
    
    function html5_slash_fixer_flush() {
        ob_end_flush();
    }

    исправно работает...
    периодически использую его в проектах, когда заказчику ну очень нужен чистый лист в валидаторе;)
    Ответ написан
    1 комментарий
  • Почему может не выводиться значение acf поля на статическую страницу? Polylang виноват?

    vasmor
    @vasmor
    Интересуюсь
    'heading-small' - имя поля правильно написано?
    может нужно с нижним подчеркиванием, вместо тире - 'heading_small'?
    Ответ написан
  • Как в плагине WP Contact Form 7 создать одну форму для всех услуг или товаров с персональной привязкой по title?

    vasmor
    @vasmor
    Интересуюсь
    Еще пару способов:
    - использовать специальные почтовые теги (прописываются в теле письма)
    1. [_post_title] - заменяется в сообщении на заголовок страницы/записи - сработает только в том случае, если форма выводится в составе контента!
    2. [_url] - заменяется на url страницы/записи - срабатывает в любом случае
    доп. инфа тут
    Ответ написан
    1 комментарий
  • Как реализовать такой цикл вывода постов на wp?

    vasmor
    @vasmor
    Интересуюсь
    Есть такой вариант:
    Получаем посты по $term

    $query = new WP_Query( array(
        'post_type' 		=> $type, // Ваш тип записи
    	'posts_per_page'	=> -1,        
    	'tax_query' => array(
    		array(
    			'taxonomy' => $tax, // Такса типа записи
    			'field'    => 'slug', 
    			'terms'    => $term // Нужный терм
    		)
    	)
    ) );


    Через цикл создаем массив id всех меток, присутствующих в полученных на предыдущем шаге постах

    $all_tags = [];
    
    if ( $query->have_posts() ) {
    	while ( $query->have_posts() ) {
    		$query->the_post();
    
    	        $cur_terms = get_the_terms( $post->ID, $post_tag ); // $post_tag - нужная таксономия (если это стандартная метка поста, то $post_tag = 'post_tag')
    	        if( is_array( $cur_terms ) ){
    		        foreach( $cur_terms as $cur_term ){
    			         $all_tags[] = $cur_term->term_id;
    		       }
    	        }        	
    	}
    }
    // Возвращаем оригинальные данные поста. Сбрасываем $post.
    wp_reset_postdata();
    
    $all_tags = array_unique($all_tags); // Оставляем уникальные значения в массиве


    Выводим кнопки табов

    echo '<ul>';
    
    	$i = 0;
    	foreach ( $all_tags as $tag ) {
    		$class_active = $i === 0 ? ' tab-active' : ''; // для первой кнопки ставим активный класс
    		$tag_name = get_term( intval( $tag ) )->name; // Наименование метки
    		echo '<li class="tab-caption' . $class_active . '">' . $tag_name . '</li>';
    	$i++;
    	}
    
    echo '</ul>';


    Выводим контент табов

    echo '<div>';
    
    	$k = 0;
    	foreach ( $all_tags as $tag ) {
    		$class_active = $k === 0 ? ' tab-active' : '';
    		
    		echo '<div class="tab-content' . $class_active . '">';
    			if ( $query->have_posts() ) {
    				while ( $query->have_posts() ) {
    					$query->the_post();
    
    				        if ( has_term( intval( $tag ), $post_tag ) ) { // Выводим только те посты, в которых есть текущая метка в цикле
    				        	the_content(); // Здесь вывод данных поста. Как вариант - get_template_part( 'path/to/template' );
    				        }    	
    				}
    			}
    			// Возвращаем оригинальные данные поста. Сбрасываем $post.
    			wp_reset_postdata();
    		echo '</div>';
    	$k++;
    	}
    
    echo '</div>';
    Ответ написан
    7 комментариев