【追記】
v1.8.4〜ショートコードにis_date=1
というオプションを追加すれば、日付が表示されるようにしました(詳細)。
type="card"
の関連記事リンクに日付をのせるためには、ショートコードを作り直す必要がありますね…。
以下のコードをfunctions.phpに貼り付けると[my-catpost]
のショートコードで日付つきのcardタイプの関連記事が好きな数だけ出力できるようになります。
/*********************
オリジナルのカードリンクを好きな数だけ出力するショートコードを作成
*********************/
add_shortcode('my-catpost', 'sng_output_original_cards_by');
function sng_output_original_cards_by($atts)
{
$num = isset($atts['num']) ? esc_attr($atts['num']) : '4';
$catid = isset($atts['catid']) ? explode(',', $atts['catid']) : null;
$notin = isset($atts['notin']) ? explode(',', $atts['notin']) : null;
$orderby = isset($atts['orderby']) ? $atts['orderby'] : 'date';
$order = isset($atts['order']) ? ($atts['order']) : "DESC";
if ($catid) {
$output_posts = get_posts(array(
'category__in' => $catid,
'numberposts' => $num,
'orderby' => $orderby,
'order' => $order
));
} else {
$output_posts = get_posts(array(
'category__not_in' => $notin,
'numberposts' => $num,
'orderby' => $orderby,
'order' => $order
));
}
$output = "";
foreach ($output_posts as $post) {
$output .= sng_original_card_link(array('id' => $post->ID));
}
return '<div class="catpost-cards flex flex-wrap space-between">'. $output .'</div>';
}
/*********************
1つのオリジナルカードを出力する関数を作成(上の関数から呼び出す)
*********************/
add_shortcode('my-card-link', 'sng_original_card_link');
function sng_original_card_link($atts)
{
$id = isset($atts['id']) ? esc_attr($atts['id']) : null;
$output = '';
if ($id) {
$ids = (explode(',', $id));
}
$target = isset($atts['target']) ? ' target="_blank"' : "";
if (isset($ids)) {
foreach ($ids as $eachid) {
$img = (get_the_post_thumbnail($eachid)) ? get_the_post_thumbnail($eachid, 'thumb-520') : '<img src="' . featured_image_src('thumb-520', $eachid) . '">';
$url = esc_url(get_permalink($eachid));
$title = esc_attr(get_the_title($eachid));
$time = get_the_time('Y.m.d', $eachid);
$icon_name = get_option('use_fontawesome4') ? '<i class="fa fa-clock-o"></i>' : '<i class="fas fa-clock"></i>';
if ($url && $title) {
$output .= <<<EOF
<a class="c_linkto" href="{$url}"{$target} rel="nofollow">
<span>{$img}</span>
<span class="c_linkto_text">
<time class="longc_time dfont">{$icon_name} {$time}</time>
<span>{$title}</span>
</span>
</a>
EOF;
} //endif
} //endforeach
} else { $output = '関連記事のIDを正しく入力してください';}
return $output;
}
//END 1つのカードを出力する関数
PCで3列で表示するためには以下のようなCSSを子テーマのstyle.cssに追加し、キャッシュを削除すれば良いかと思います。
@media only screen and (min-width: 768px) {
.catpost-cards .c_linkto {
width: 32%;
}
}
よろしくお願いします。
お忙しいところ早速のご返信、コードの修正方法のご教示ありがとうございます。
試したところ無事に反映されました。
本当に助かりました。ありがとうございました。
SANGOを購入してよかったです。
今後とも大切に使用させていただきます。
いえいえ、うまくいったようで良かったです!
ご報告ありがとうございました。
WordPressテーマSANGOの質問
type="card"を使用した場合でも投稿日時を表示したい
[catpost type=”card2″~~~を使用した場合、投稿日時が表示されますが、
[catpost type=”card”~~~を使用した場合、投稿日時が表示されないかと思います。
type=”card”でも投稿日時を表示する方法はありますでしょうか。
また、[catpost type=”card”~~~を使用した場合、レスポンシブで2列~1列の表示になるかと思います。
表示サイズを小さくして3列表示にする方法はありますでしょうか。
以下のショートコートで試してみましたが駄目でした。。。
[yoko3 responsive][cell][catpost type="card" num="6"][/cell][/yoko3]
ご迷惑おかけいたしますが、ご教授いただけると助かります。