ショートコードの作成方法は、WordPressのCodexほか、調べるとたくさんのサイトで解説してあります。
トピック投稿者
703s
(@703s)
ここまでコードを作成したのですが、
サムネイルがリスト内に表示されなかったり、リンクがつかなかったりと
どうもうまくいきません。
原因が分かる方いらっしゃったら教えていただけませんか?
無知なものですみません。。。
function getCatItems($atts, $content = null) {
extract(shortcode_atts(array(
"num" => '4',
"cat" => ''
), $atts));
global $post;
$oldpost = $post;
$myposts = get_posts('numberposts='.$num.'&order=DESC&orderby=post_date&category='.$cat);
$retHtml='
<ul>';
foreach($myposts as $post) :
setup_postdata($post);
$retHtml.='<li class="new_post"><a href="'.get_permalink().'">'.the_post_thumbnail(array(130,130)).'</a>';
$retHtml.='<a href="'.get_permalink().'">'.the_title("","",false).'</a>';
endforeach;
$retHtml.='</ul>
';
$post = $oldpost;
return $retHtml;
}
add_shortcode("my_list", "getCatItems");
the_post_thumbnail が間違い。
WordPressでは基本的に the_ で始まる関数はその関数の場所で出力します。
ショートコードなど return で返す必要がある場合は使えません。
get_ で始まる関数で置き換えてください
トピック投稿者
703s
(@703s)
get_ にしたらうまくいきました!ありがとうございます。
ただもう1点…。
ショートコードを投稿ページに挿入すると、
下のコンテンツとスペースをあけたいのに、
でも改行されません。
加えて、プレビューすると同ページの他の部分のclass指定が
削除されてしまうという現象がおきます。
ショートコードを挿入したことと関係があるのでしょうか?
ショートコードを投稿ページに挿入すると、
下のコンテンツとスペースをあけたいのに、
でも改行されません。
ショートコードで出力するHTMLになんかcssクラスでも割り当ててスタイルシートで調整すればいいのでは?
加えて、プレビューすると同ページの他の部分のclass指定が
削除されてしまうという現象がおきます。
言葉だけでは具体的な原因が分かりません(エスパーではないので)
デフォルトテーマで試すとか、プラグインをすべてオフにするとか試しました?
参照「問題解決のためのチェックリスト」