人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【ワードプレス・ショートコード、で?の分を下記ファンクションにいれたいのですが、タグがあるなどでどのように記述すればよいかわかりません。どなたかご教授いただけると幸いです。
function hogeFunc() {
return "kokoniireru";
}
add_shortcode('hoge', 'hogeFunc');

?下記をfunctionに記述したい
<?php
global $post;
$tmp_post = $post;
$category_ids = array( '17' ); //カテゴリーIDを指定
$numberposts = '100'; //一覧表示したい記事数を数字で指定
foreach ( $category_ids as $category_id ) {
?>


<h3><?php echo get_cat_name( $category_id ); ?></h3>

<ul>
<?php
$postslist = get_posts( "category=$category_id&numberposts=$numberposts&order=DESC&orderby=modified" );
foreach ( $postslist as $post ){
?>

<li> <a href=<?php echo get_permalink( $post->ID ); ?>><?php echo $post->post_title; ?><?php echo get_the_modified_date('Y年n月j日'); ?></a></li>
<?php
}
?>
</ul>

<?php
}
$post = $tmp_post;
?>

●質問者: ak
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ラフティング
●20ポイント

記事一覧を入れたいんですよね!
http://appofit.com/wordpress/template-wp/shortcode-wp/


akさんのコメント
ありがとうございます!

2 ● gizmo5
●80ポイント ベストアンサー

質問にあるコードを機械的に書き写しただけですが、以下のようになると思います。

function hogeFunc() {
 global $post;
 $html = "";
 $tmp_post = $post;
 $category_ids = array( '17' ); //カテゴリーIDを指定
 $numberposts = '100'; //一覧表示したい記事数を数字で指定

 foreach ( $category_ids as $category_id ) {

 $html .= '<h3>' . get_cat_name( $category_id ) . '</h3><ul>';

 $postslist = get_posts( "category=$category_id&numberposts=$numberposts&order=DESC&orderby=modified" );
 foreach ( $postslist as $post ){
 $html .= sprintf(
 '<li> <a href="%s">%s %s</a></li>',
 esc_attr(get_permalink( $post->ID )),
 esc_html($post->post_title),
 get_the_modified_date('Y年n月j日')
 );
 }

 $html .= '</ul>';
 }

 $post = $tmp_post;

 return $html;
}
add_shortcode('hoge', 'hogeFunc');

パーマリンクの esc_attr() は無くても良いかもしれませんが、タイトルの esc_html() はやっておいた方が良いと思います。
http://codex.wordpress.org/Function_Reference/esc_html

サンプルは探せばたくさん見つかると思います。
http://www.virment.com/wordpress/1582/


akさんのコメント
これをもとめていました(*^_^*) 本当にありがとうございます!

akさんのコメント
ところで、$html .の ドットはどんな意味になるんでしょうか・・・汗 ネットで調べてもわからない汗

akさんのコメント
sprintf( も上記のようにかけるんですね(*^_^*) 勉強なります。

akさんのコメント
$tmp_post = $post; も意味がわかりました汗 いまあるpostを一旦退避させてるんですね。。。 やはり、できる人のをみると勉強なります。

gizmo5さんのコメント
>> ところで、$html .の ドットはどんな意味になるんでしょうか・・・汗 << >|| $html .= ... ||< は、 >|| $html = $html . ... ||< と同じです。$a = $a + 1 が $a += 1 と書けるのと一緒です。 マニュアルでは以下になります。 http://www.php.net/manual/ja/language.operators.string.php 記号の意味が分からないときにはググるのが難しいですよね。

akさんのコメント
ありがとうございます。 勉強になりました(*^_^*)
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ