PHPコードでログイン状態の画面へリンク

仕事(Tips)

bbpressを使用したサイトでサイトの速度向上のご依頼があり、
サイトを覗くとバージョンがかなり古いため更新作業を申し出ました。

その後了承を得て更新作業をしたら、サイドバーに載っている情報のデザインが崩れリンク切れがおこりました。
原因は、テーマファイルに記述定義されたであろうショートコードを
サイドバー内のPHPコードで呼んでいたと推測します。
(更新後にこのショートコードは、サイト内ではサイドバー内以外に見つかりませんでした。)

その該当コードがこちらです。

<?php
$user = wp_get_current_user();
$name = str_replace(".", "-", $user->user_login);
?>
<div style="margin-top: 0px;" class="bbp-plink-button"><a style="color: 色;" href="https://あるサイト.com/">トップページへ戻る</a></div>
<?php if($user->ID) { ?>
<div style="margin-top: 10px;" class="bbp-plink-button"><a style="color: 色;" 
 href="https://あるサイト.com/follow/">フォロワーのトピック</a></div>
<div style="margin-top: 10px;" class="bbp-plink-button"><a style="color: 色;" 
 href="https://あるサイト.com/forums/users/<?php echo $name;?>/subscriptions/">お気に入りのトピック</a></div>
<?php } ?>
<div style="margin-top: 10px;">
<?php if( is_user_logged_in() ) : ?>
   <?php echo do_shortcode('[ha-profilelink]'); ?>
<?php endif; ?>
</div>

この中のこちらの表示が
ボタンが自体なく[ha-profilelink]という表示のみになっていました。

<div style="margin-top: 10px;">
<?php if( is_user_logged_in() ) : ?>
   <?php echo do_shortcode('[ha-profilelink]'); ?>
<?php endif; ?>
</div>

これを解決するためにまず

  • サイト内で[ha-profilelink]を他にないか記述コードを探しました。
  • コードを入れ替えてどのように効いていたのかを確かめました。

とりあえず上記はどちらもダメなことを確認し、
これらからPHPのコードで表示させないといけないと考えました。

<?php
$user = wp_get_current_user();
$name = str_replace(".", "-", $user->user_login);
?>

こちらが定義されているので、
$nameを出力すればプロフィール画面が出てくれると考えて
下記の記述で表示に成功しました。

<div style="margin-top: 10px;" class="bbp-plink-button"><?php if( is_user_logged_in() ) : ?>
<a style="color: 色;" 
 href="https://あるサイト.com/forums/users/<?php echo $name; ?>">プロフィールを確認
</a><?php endif; ?>
</div>

コメント

タイトルとURLをコピーしました