前提・実現したいこと
WordPressで多言語ページを制作しています。
Polylangというプラグインを使用し、多言語ページを導入しました。
その際にプラグインが正常に動作しなかったために、フロントページを固定ページで作成しました。
フロントページに最新記事の日付とタイトルを表示しパーマリンクを取得したかったので、ショートコードを使用し表示させることができました。
日付とタイトルの後に「詳細はこちら」というボタンを設置しているので、クリックすると記事ページに飛ぶように設定したいのですが、ショートコードが動きません。
固定ページで記事ページのパーマリンクを取得することはできますでしょうか。
発生している問題・エラーメッセージ
http://xxxxxxxxx.wp.xdomain.jp/[pagelink]
該当のソースコード
HTML
1[news num="1"] 2<a href="[pagelink]"> 3 <div class="detail text-center"> 4 <i class="fas fa-chevron-right"></i> 5 <p>詳細はこちら</p> 6 </div> 7</a>
PHP
1// 最新記事リスト 2function getNewItems($atts) { 3 extract(shortcode_atts(array( 4 "num" => '', //最新記事リストの取得数 5 ), $atts)); 6 global $post; 7 $oldpost = $post; 8 $myposts = get_posts('numberposts='.$num); 9 $retHtml='<ul class="news_list">'; 10 foreach($myposts as $post) : 11 setup_postdata($post); 12 $retHtml.='<li>'; 13 $retHtml.='<span class="news_date">'.get_post_time( get_option( 'date_format' )).'</span>'; 14 $retHtml.='<span class="news_title"><a href="'.get_permalink().'">'.the_title("","",false).'</a></span>'; 15 $retHtml.='</li>'; 16 endforeach; 17 $retHtml.='</ul>'; 18 $post = $oldpost; 19 wp_reset_postdata(); 20 return $retHtml; 21} 22add_shortcode("news", "getNewItems"); 23 24// 投稿タイプのアーカイブ 25function linkpage_func ( $atts ) { 26 extract( shortcode_atts( array( 27 'id' => '', //投稿ID 28 'slug' => '', //ページスラッグ 29 ), $atts ) ); 30 $my_url = home_url( '/' ); 31 if($slug){ //スラッグを指定したときに投稿IDを取得する 32 $id = url_to_postid($my_url. $slug); 33 } 34 $link = get_permalink($id); 35 $title = get_the_title($id); //投稿IDで指定した投稿のレコードをデータベースから取得 36 return '<a href="'. $link .'"' .'>'. $title. '</a>'; 37} 38add_shortcode('pagelink', 'linkpage_func');
補足情報(FW/ツールのバージョンなど)
WordPress 4.9.9
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。