関連記事のショートコードのリンク先をURLで指定したい

質問Reopen

記載した参考サイトの方同様、ショートコードの関連記事を投稿IDではなくURLで指定したいと思っています。(THETHORからの乗り換えのため) 参考サイト内のサルカワさんのコメントにあったコードを貼り付けたところ、エラーが出てしまいました。記載場所が違うのでしょうか?解決策を教えていただけると幸いです。

My profile
My profile

参考サイトのリンクの記載を忘れました。こちらです。 https://saruwakakun.com/sango/comments?id=114

My profile

ソースコードをみたところではEOF;の記述が無駄のようです。 この記述を消していただけますか?

よろしくお願いします。

My profile
My profile

ご連絡ありがとうございます。 17行目のE0F;を消してもエラーは消えませんでした。

My profile

elseの前に}が二つあるようです。これも一つだけにしてみてください。 よろしくお願いします。

My profile

ありがとうございます。 }を消したことでエラーは消えて更新はできましたが、 [kanrenl url="投稿ページのURL"] 上のショートコードに表示させたい記事のURLを載せても、 公開画面上で記事が表示されません。

My profile

ちなみにEOF;を残して"}"だけ消しても結果は同じでした。

My profile

こちらのコードではいかがでしょうか? こちらの環境では正しく動作しました。

add_shortcode('kanrenl','sng_entry_linkl');
function sng_entry_linkl($atts) {
  $output = '';
  $url = isset($atts['url']) ? esc_attr($atts['url']) : null;
  $postid = url_to_postid( $url );
  if(isset($postid)) {
      $img = (get_the_post_thumbnail($postid)) ? get_the_post_thumbnail($postid, 'thumbnail') : '<img src="'.featured_image_src('medium').'">';
      $url = esc_url(get_permalink($postid));
      $title = esc_attr(get_the_title($postid));
      if($url && $title) {
          $output .= "<a class=\"linkto table\" href=\"{$url}\"><span class=\"tbcell\">{$img}</span><span class=\"tbcell\">{$title}</span></a>";
      } else {
          $output = '関連記事のIDを正しく入力してください';
      }
  }
  return $output;
}
My profile

ありがとうございます。急ぎだったので別の方法で実装してしまいました。。今度試してみます。

My profile