@Ponitessa

Как вставить группу полей ACF в записи после 1-го абзаца в Wordpress?

Здравсвтуйте, у меня возникла проблема, которую я не смогла решить... Я добавила в acf нужную группу мне полей, с этим проблем не возникло и вставила данный код в single.php :

<table>
<thead>
		<tr class="first">
			<th><?php the_field('bir_date_title'); ?></th>
			<th><?php the_field('bir_date'); ?></th>
			
		</tr>
		
	</thead>
	<tbody>
		<tr class="second">
			<td><?php the_field('age_title'); ?></td>
			<td><?php the_field('age'); ?></td>
		</tr>
	</tbody>
	<tbody>
		<tr class="first">
			<td><?php the_field('bir_place_title'); ?></td>
			<td><?php the_field('bir_place'); ?></td>
		</tr>
	</tbody>
	<tbody>
		<tr class="second">
			<td><?php the_field('rost_title'); ?></td>
			<td><?php the_field('rost'); ?></td>
		</tr>
	</tbody>
	<tbody>
		<tr class="first">
			<td><?php the_field('ves_title'); ?></td>
			<td><?php the_field('ves'); ?></td>
		</tr>
	</tbody>
	<tbody>
		<tr class="second">
			<td><?php the_field('instagram_title'); ?></td>
			<td><a href="<?= get_field('instagram')['url'] ?>" target="<?= get_field('instagram')['target'] ?>"><?= get_field('instagram')['title'] ?></a>
			</td>
		</tr>
	</tbody>
</table>


Эти поля выводится в конце записи, а мне нужно, чтобы они выводились после первого абзаца в записи. Как это реализовать?
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 2
pro100taa
@pro100taa
1. Самый простой способ, однако, более громоздкий. Если такая ситуация (когда надо вставлять поле acf после абзаца) повторяется регулярно, то можно оставить окно редактора под первый абзац. Далее создать второе окно редактора на странице с помощью того же ACF. Между ними вывести необходимое поле.

2. Если не подходит, то делайте шорткод. Ссылка wp-kama.ru/plugin/acf/shortkod. Правда, шорткод придется постоянно выводить в записи руками.
Ответ написан
solidcreature
@solidcreature
Развиваю сообщество WordPress в Москве
Дмитрий выше предложил хорошее решение, тоже первым делом подумал о шорткоде.
Но можно решить задачу с другой стороны. Вы можете отключить основной редактор (если это не гутенберг, а классический TinyMCE) или просто не использовать его содержимое.

Вместо контента, добавьте еще 2 поля типа WYSIWYG в вашей группе полей. Например text_before для абзаца перед таблицей и text_after для остального содержимого.

Тогда у вас получится следующих код:

<?php the_field('text_before'); ?>
<table>
<thead>
    <tr class="first">
      <th><?php the_field('bir_date_title'); ?></th>
      <th><?php the_field('bir_date'); ?></th>
      
    </tr>
    
  </thead>
  <tbody>
    <tr class="second">
      <td><?php the_field('age_title'); ?></td>
      <td><?php the_field('age'); ?></td>
    </tr>
  </tbody>
  <tbody>
    <tr class="first">
      <td><?php the_field('bir_place_title'); ?></td>
      <td><?php the_field('bir_place'); ?></td>
    </tr>
  </tbody>
  <tbody>
    <tr class="second">
      <td><?php the_field('rost_title'); ?></td>
      <td><?php the_field('rost'); ?></td>
    </tr>
  </tbody>
  <tbody>
    <tr class="first">
      <td><?php the_field('ves_title'); ?></td>
      <td><?php the_field('ves'); ?></td>
    </tr>
  </tbody>
  <tbody>
    <tr class="second">
      <td><?php the_field('instagram_title'); ?></td>
      <td><a href="<?= get_field('instagram')['url'] ?>" target="<?= get_field('instagram')['target'] ?>"><?= get_field('instagram')['title'] ?></a>
      </td>
    </tr>
  </tbody>
</table>
<?php the_field('text_after); ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы