実際にどんなコードが書かれているか分からないので、誰も回答のしようがないですよ
なるほど。大変失礼いたしました。。。
function simple_sitemap(){
global $wpdb;
$sitemap_ID = strval( get_page_by_path('sitemap') -> ID );
$request_ID = strval( get_page_by_path('request') -> ID );
$exclude_ID = $sitemap_ID.",".$request_ID;
$args = array(
'depth' => 2,
'show_date' => '',
'date_format' => get_option('date_format'),
'exclude' => $exclude_ID,
'include' => NULL,
'child_of' => 0,
'title_li' => '',
'echo' => 1,
'authors' => NULL,
'sort_column' => 'menu_order, post_title',
'link_before' => NULL,
'link_after' => NULL,
'exclude_tree' => NULL );
echo '<div id="sitemap"><ul>';
wp_list_pages($args);
echo '</ul>';
add_shortcode('sitemap', 'simple_sitemap');
以上のようなコードを書いています。
よろしくお願いします!
こんにちは、
関数が閉じていませんが、書き忘れですか?
動作は確認していませんが、ショートコードは、特別な事がなければ、return させるものではないかと思います。
>>nobitaさん
申し訳ありません。
問題のある部分を抜粋していたので書き忘れです。。。
下記のようになっております!
function simple_sitemap(){
global $wpdb;
$sitemap_ID = strval( get_page_by_path('sitemap') -> ID );
$request_ID = strval( get_page_by_path('request') -> ID );
$exclude_ID = $sitemap_ID.",".$request_ID;
$args = array(
'depth' => 2,
'show_date' => '',
'date_format' => get_option('date_format'),
'exclude' => $exclude_ID,
'include' => NULL,
'child_of' => 0,
'title_li' => '',
'echo' => 1,
'authors' => NULL,
'sort_column' => 'menu_order, post_title',
'link_before' => NULL,
'link_after' => NULL,
'exclude_tree' => NULL );
echo '<div id="sitemap"><ul>';
wp_list_pages($args);
echo '</ul>';
//カスタム投稿用
// スラッグからカスタム投稿名をを取得
$blog_title = get_post_type_object('blog') -> labels -> name;
$result_title = get_post_type_object('result')-> labels -> name;
$voice_title = get_post_type_object('voice') -> labels -> name;
// スラッグからアーカイブ用のリンクを取得しつつaタグを作成
$blog_link = "<a href=".get_post_type_archive_link( 'blog' ).">".$blog_title."</a>";
$result_link = "<a href=".get_post_type_archive_link( 'result' ).">".$result_title."</a>";
$voice_link = "<a href=".get_post_type_archive_link( 'voice' ).">".$voice_title."</a>";
echo '<ul><li>';
echo $blog_link;
echo '</li></ul>';
echo '<ul><li>';
echo $result_link;
echo '</li></ul>';
echo '<ul><li>';
echo $voice_link;
echo '</li></ul>';
//サイトマップ・お問い合わせ用(IDからリンクを取得・スラッグからページのタイトルを取得)
// スラッグから固定ページ名を取得
$request_title = get_page_by_path('request') -> post_title;
$sitemap_title = get_page_by_path('sitemap') -> post_title;
// スラッグから取得したIDからリンクを取得しつつaタグを作成
$request_link = "<a href=".get_category_link( $request_ID ).">".$request_title."</a>";
$sitemap_link = "<a href=".get_category_link( $sitemap_ID ).">".$sitemap_title."</a>";
echo '<ul><li>';
echo $request_link;
echo '</li></ul>';
echo '<ul><li>';
echo $sitemap_link;
echo '</li></ul>';
echo '</div>';
}
add_shortcode('sitemap', 'simple_sitemap');
汚くて申し訳ありませんが、よろしくお願いします。
一般的には、以下のようになるのではないかと思います。
function simple_sitemap(){
global $wpdb;
/* 省略、strval() 必要なんですか?
$sitemap_ID = strval( get_page_by_path('sitemap') -> ID );
$request_ID = strval( get_page_by_path('request') -> ID );
$exclude_ID = $sitemap_ID.",".$request_ID;*/
$exclude_ID = "";
$args = array(
'depth' => 3,
'show_date' => true,
'date_format' => get_option('date_format'),
'exclude' => $exclude_ID,
//'include' => NULL,
//'child_of' => 0,
'title_li' => '',
'echo' => 0,
//'authors' => NULL,
//'sort_column' => 'menu_order, post_title', デフォルトと同じなのでいりません
//'link_before' => NULL,
//'link_after' => NULL,
//'exclude_tree' => NULL ないですよね
);
/* ショートコードは、return
echo '<div id="sitemap"><ul>';
wp_list_pages($args);
echo '</ul>';
*/
/* wp_list_pagesは、echoしないで return */
return sprintf( '<div id="sitemap"><ul>%1$s</ul></div>',wp_list_pages($args) );
}
add_shortcode('sitemap', 'simple_sitemap');
ありがとうございます。上記コードで上手くいきました!
どうやらwp_list_pageのechoが良くなかったようです。
本当にありがとうございます!