Вывести посты определенным образом Wordpress

203
28 июня 2017, 00:35

Этот код выводит на страницу посты которые являются ссылками.

      <?php
            $args = array(
                'post_type' => array('job')
            );
            $the_query = new WP_Query( $args );
            ?>
            <?php if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
                <a href="<?php the_permalink(); ?>" class="jobs">
                    <div class="jobs-item">
                        <h2 class="page-head_sub-title"><?php the_title(); ?></h2>
                        <p><?php the_content(); ?></p>
                    </div>
                </a>
            <?php endwhile;  endif; ?>

Каждый блок содержит заголовок и контент (параграфы).

Блоки отображаются не корректно (не так как указано). Ссылка выводится внутри блока <div class="jobs-item">.

И еще один момент, как можно изменить разметку для блока с конкретным id? Т.е. блок с id=683 не должен быть ссылкой.

Answer 1

Ссылку внутрь помещает браузер, пытаясь исправить нарушение правил html. Внутри ссылки не может быть блочных элементов: http://htmlbook.ru/samhtml/ssylki/pravila-vlozheniy-dlya-tega

Чтобы не выводить ссылку определенного поста, используйте глобальную переменную $post.

<?php global $post; ?>
<?php if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    <?php if ( 683 !== $post->ID ) { ?>
    <a href="<?php the_permalink(); ?>" class="jobs">
    <?php } ?>
        <div class="jobs-item">
            <h2 class="page-head_sub-title"><?php the_title(); ?></h2>
                <p><?php the_content(); ?></p>
        </div>
    <?php if ( 683 !== $post->ID ) { ?>
    </a>
    <?php } ?>
<?php endwhile;  endif; ?>
READ ALSO
Проблемы с путями после переноса на хостинг

Проблемы с путями после переноса на хостинг

Перенес сайт на хостинг, но возникла ошибка при подключении файлов из фронконтроллера:

157
Помогите разобраться с Invalid argument supplied for foreach()

Помогите разобраться с Invalid argument supplied for foreach()

Здрасьте! Хотел вывести на экран содержимое БДНаписал вот так:

224
cURL как получить ref id

cURL как получить ref id

Создал два сайта, один обработчик, второй отправляет ему post запрос с именем домена, первый - второму возвращает код домена (сайта), те

220
Исключение повторяющих чисел в цикле for

Исключение повторяющих чисел в цикле for

Цикл for выводит такую строку после обработки данных:

208