ワードプレスでコードを教えていただきたいです!

やりたい事
【投稿記事で同じカテゴリーの記事を関連記事として出力する】
ここまではできましたが・・・

<font color="#000000" size="4"><strong>【関連記事】</strong></font>
<ul class="aaa">
<?php
foreach((get_the_category()) as $cat) {
$cat_id = $cat->cat_ID ;
break ;
}
$query = 'cat=' . $cat_id. '&showposts=4';
query_posts($query) ;
?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>


<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>

<?php endwhile; endif; ?>
</ul>
<?php wp_reset_query(); ?>

【↑をfunction.phpに入れてショートコードで実装したいのですが、記述の仕方がわかりません。どなたかコードを教えていただけないでしょうか?】

回答の条件
  • 1人10回まで
  • 13歳以上
  • 登録:2014/05/17 15:51:58
  • 終了:2014/05/19 11:44:44

ベストアンサー

id:sasada No.1

sasada回答回数1482ベストアンサー獲得回数1332014/05/17 19:23:00

ポイント100pt

 ショートコードの作り方です。
http://www.webopixel.net/wordpress/53.html

 return文でショートコードで表示したいものを返します。
 色々書き方は有りますが、たとえば、

function hogeFunc() {
	rtnVal  = '';
	rtnVal .= '<font color="#000000" size="4"><strong>【関連記事】</strong></font>';
	rtnVal .= '<ul class="aaa">';

	foreach((get_the_category()) as $cat) {
		$cat_id = $cat->cat_ID ;
		break ;
	}
	$query = 'cat=' . $cat_id . '&showposts=4';
	query_posts($query) ;

	if ( have_posts() ) : while ( have_posts() ) : the_post();

		rtnVal .= '<li><a href="' . the_permalink() . '">' . the_title() . '</a></li>';

	endwhile; endif;
	rtnVal .= '</ul>';
	wp_reset_query();

	return rtnVal;
}
add_shortcode('hoge', 'hogeFunc');

とでもなるでしょうか。

id:akakak

ありがとうございます(*^_^*)
求めていた感じです!!!
早速実装してみます!

2014/05/19 11:44:29

その他の回答(1件)

id:sasada No.1

sasada回答回数1482ベストアンサー獲得回数1332014/05/17 19:23:00ここでベストアンサー

ポイント100pt

 ショートコードの作り方です。
http://www.webopixel.net/wordpress/53.html

 return文でショートコードで表示したいものを返します。
 色々書き方は有りますが、たとえば、

function hogeFunc() {
	rtnVal  = '';
	rtnVal .= '<font color="#000000" size="4"><strong>【関連記事】</strong></font>';
	rtnVal .= '<ul class="aaa">';

	foreach((get_the_category()) as $cat) {
		$cat_id = $cat->cat_ID ;
		break ;
	}
	$query = 'cat=' . $cat_id . '&showposts=4';
	query_posts($query) ;

	if ( have_posts() ) : while ( have_posts() ) : the_post();

		rtnVal .= '<li><a href="' . the_permalink() . '">' . the_title() . '</a></li>';

	endwhile; endif;
	rtnVal .= '</ul>';
	wp_reset_query();

	return rtnVal;
}
add_shortcode('hoge', 'hogeFunc');

とでもなるでしょうか。

id:akakak

ありがとうございます(*^_^*)
求めていた感じです!!!
早速実装してみます!

2014/05/19 11:44:29
id:snow0214 No.2

snow0214回答回数470ベストアンサー獲得回数1162014/05/17 20:40:58

ポイント100pt

こんな感じでどうでしょうか。
ショートコード名は printRelatedArticle です。

<?php
function Func_printRelatedArticle() {
    $res =<<< EOT
<font color="#000000" size="4"><strong>【関連記事】</strong></font>
<ul class="aaa">

EOT;

    foreach ((get_the_category()) as $cat) {
        $cat_id = $cat->cat_ID ;
        break ;
    }
    $query = 'cat=' . $cat_id. '&showposts=4';
    query_posts($query) ;

    if (have_posts()) {
        while (have_posts()) {
            the_post();
            $link = the_permalink();
            $title= the_title();
            $res .=<<< EOT
<li><a href="{$link}">{$title}</a></li>

EOT;
        }
    }

    $res .= "</ul>\n";
    wp_reset_query();

    return $res;
}

add_shortcode('printRelatedArticle', 'Func_printRelatedArticle');
?>
id:akakak

大変詳しくありがとうございます!このような書き方をはじめてみたので大変勉強なりました。ググりながらコードを再度勉強してみます(*^_^*)

2014/05/19 11:43:43

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません