WordPress Twenty Seventeen
固定ページでの 記事一覧の作成
2種類の ショートコード
固定ページでの 記事一覧の作成
2種類の ショートコード
投稿記事が多くなってくると、記事の見直しやサイトの移行等に当たって、『いろんな角度』からの「記事一覧」が欲しくなってくる。
以下、ショートコードに関するおさらいと、ショートコードでの「投稿日順 記事一覧」の記録。
スポンサー リンク
目 次
1. 2種類のショートコード
ショートコードとは
functions.phpと呼ばれる場所の中に、プログラムコードを記述しておき、記事や固定ページに短いコードを記述することで、その動作を呼び出すしくみで、短いコード[xxxxxx]をショートコードという。
WordPressでショートコードを使う方法には、次の2種類がある。
それぞれ「子テーマ」で実装するのが良い。
それぞれ「子テーマ」で実装するのが良い。
この、【 phpの外部ファイルを呼び出す方法 】を使う場合には、functions.phpに次のコードを追記する必要がある。
/*-----------------------------------------------------------*/
/* 【子テーマ用】ショートコードを使ってphpファイルを呼び出す */
/*-----------------------------------------------------------*/
function my_php_Include($params = array()) {
extract(shortcode_atts(array('file' => 'default'), $params));
ob_start();
include(STYLESHEETPATH . "/shortcode/$file.php");
return ob_get_clean();
}
add_shortcode('shortcode', 'my_php_Include');
/*-----------------------------------------------------------*/
この「ショートコードを使ってphpファイルを呼び出す」ルーティンに記述した値を使用して、記事や固定ページにブラケット[ ]で囲んで記述。
yyyyy file='xxxxx'
yyyyy:add_shortcode で設定したタグ名
xxxxx:「include」で設定したパスに登録されたphpファイルの名前
yyyyy:add_shortcode で設定したタグ名
xxxxx:「include」で設定したパスに登録されたphpファイルの名前
2. ショートコードのための関数について
①.ョートコードタグを追加する関数
②.グローバル変数と、投稿記事の取得関数
検索条件を指定する連想配列。
$args = array(
'numberposts' => 5, 取得件数(posts_per_page)
'offset' => 0, 取得開始位置
'category' => '',
'category_name' => '',
'orderby' => 'date', ソート対象
'order' => 'DESC', ソート順 ASCかDESC
'include' => '',
'exclude' => '',
'meta_key' => '',
'meta_value' => '',
'post_type' => 'post',
'post_mime_type' => '',
'post_parent' => '',
'author' => '',
'post_status' => 'publish',
'suppress_filters' => true
);
$posts_array = get_posts( $args );
③.記事情報を取得する関数
④.引数(パラメーター)を渡す関数
3. 方法1:functions.phpにコードを追記する方法でのサンプル
ショートコード名「list」とパラメータの記述例。
[list num="50" odr="asc"]
phpプログラムコード(functions.phpの中に追記)。
/*------------------------------------------------------------------*/
/*--- 投稿日、記事タイトル、パーマリンクを表示するショートコード ---*/
/*------------------------------------------------------------------*/
function print_post($atts){
$retHTML='';
// デフォルトの値を設定
extract(shortcode_atts(array(
"num" => '20',
"odr" => 'ASC'
), $atts));
global $post;
$myposts = get_posts('numberposts='.$num.'&order='.$odr);
foreach($myposts as $post):
setup_postdata($post);
$retHTML.=get_the_date('Y年n月j日')." : ";
$retHTML.="<a>".'
';
$retHTML.=''.the_title("","",false).'
';
$retHTML.="</a>";
endforeach;
wp_reset_postdata();
return $retHTML;
}
add_shortcode('list','print_post');
/*------------------------------------------------------------------*/
4. 方法2:phpの外部ファイルを呼び出す方法でのサンプル
functions.php に追記した「ショートコードを使ってphpファイルを呼び出す」ルーティンに記述した値を使用して、記事や固定ページにブラケット[ ]で囲んで記述。
yyyyy file='xxxxx'
yyyyy:add_shortcode で設定したタグ名
xxxxx:「include」で設定したパスに登録されたphpファイルの名前
yyyyy:add_shortcode で設定したタグ名
xxxxx:「include」で設定したパスに登録されたphpファイルの名前
ショートコードの記述例。
[shortcode file='kijiitiran']
phpプログラムコード(kijiitiran.php)。
(子テーマの /shortcode/ ディレクトリーに登録。)
(子テーマの /shortcode/ ディレクトリーに登録。)
<?php
/* (ステップ1)データの取得 */
$query = new WP_Query(
array(
'posts_per_page' => 250,
'post_type' => 'post',
)
);
?>
<?php
/* (ステップ2)データの表示 */
if ( $query->have_posts() ) : ?>
<ul>
<?php while ( $query->have_posts() ) : $query->the_post();?>
<li>-----------------------------------</li>
<li><a href="<?php the_permalink(); ?>">
<?php the_title(); ?></a></li>
<li><?php the_permalink(); ?></li>
<?php endwhile; ?>
</ul>
<?php endif; wp_reset_postdata(); ?>
以上。
(2020.07.25)
(2020.07.25)
スポンサー リンク