この記事の監修者を表示するカスタマイズ

カスタマイズ上での注意

このカスタマイズではPHPを利用します。書き方を間違えるとサイトの不具合にも繋がります。PHPのカスタマイズによる不具合は責任を負いかねますので、慎重に作業してください。

また、SANGO3.6以上の最新版でのカスタマイズ方法になる点にご注意ください。

この記事では、記事ごとに著者情報の他に記事の監修者を表示するカスタマイズをご紹介します。

この記事を実践すると以下のようなイメージで記事の監修者を表示できます👇

functions.phpの編集

子テーマのfunctions.phpに以下のような記述をします!

PHP
<?php

add_filter('sng_author_info', 'override_author_info', 10, 3);

function override_author_info($html, $options) {
  global $post;
  $supervisor_id = get_post_meta($post->ID, 'post_supervisor', true);
  if (!$supervisor_id) {
    return $html;
  }
  return $html . sng_author_info_by_id($supervisor_id, '記事の監修者');
}

add_action('sng_field_side_extra', function () {
  global $post;
  $meta_value = get_post_meta($post->ID, 'post_supervisor', true);
  ob_start();
  $users = get_users();
  foreach ($users as $user) {
    $selected = $user->ID === $meta_value ? " selected" : "";
  ?>
    <option value="<?php echo $user->ID ?>"<?php echo $selected ?>><?php echo $user->display_name ?></option>
  <?php
  }
  $options = ob_get_clean();
  echo '<p class="sng-field-title"><img draggable="false" role="img" class="emoji" alt="👦" src="https://cdn.jsdelivr.net/gh/twitter/twemoji@latest/assets/svg/1f9d1-200d-1f4bb.svg"> 監修者名</p>';
  echo "<div style='margin-top: 10px;'>
    <select name='post_supervisor'>
      <option value=''>監修者を選択</option>
      $options
    </select>
  </div>";
});

add_action('sng_update_custom_fields', function ($post_id) {
  sng_update_custom_text_fields($post_id, 'post_supervisor');
}, 10, 3);

記事ごとに監修者を選択

各記事ページで、監修者を選択します。

コメントを残す

* は入力必須項目です。
コメント投稿ガイドラインを読んでから投稿してください。
メールアドレスは公開されませんが、名前は公開されます。

HTMLやPHPのコードを掲載するときはHTMLエスケープツールで特殊文字を変換してから貼り付けてください。