よく使うワードプレスのphp関数スニペット。随時追加

しょっちゅう使うわけではないけれど、ワードプレスを使うサイトが多くなってきたことに伴い使う頻度は増えてきたワードプレスの関数をその都度調べて記述するのもめんどくさくなってきたのでまとめてみました。

● まずは、htmlファイルでphpを読み込むときに必要な.htaccessへの記述

AddType application/x-httpd-php .php .html
AddHandler application/x-httpd-php .php .html

※エックスサーバーの場合には上記記述ではなく、以下のいずれかが必要
※phpのバージョンは使用環境に合わせる

AddHandler fcgid-script .html
AddHandler x-httpd-php7.2 .php .phps .html

● htmlファイルでphpを読み込むときは.htaccessへの記述とともにphpを読み込みたいhtmlごとに以下の記述が必要
※htmlファイルの1行目に記述する
※相対指定なので、環境に合わせてwp-load.phpを指定する

<?php require('./blog/wp-load.php'); ?>

● 投稿の項目表示一覧

<!-- テーマテンプレートURL -->
<?php echo get_template_directory_uri(); ?>

<!-- タイトル -->
<?php the_title();?> 

<!-- 本文 -->
<?php the_content();?> 

<!-- 抜粋 -->
<?php the_excerpt();?> 

<!-- タグ -->
<?php the_tags();?> 

<!-- カテゴリ -->
<?php the_category();?> 

<!-- サムネイル画像(アイキャッチ) -->
<?php the_post_thumbnail();?> 

<!-- ファイル名(スラッグ) -->
<?php echo $post->post_name;?> 

<!-- 公開日付 -->
<?php the_date();?> 

<!-- サムネイル画像(アイキャッチ)のURL -->
<?php if ( has_post_thumbnail() ) {
$image_id = get_post_thumbnail_id ();
$image_url = wp_get_attachment_image_src ($image_id, true);
echo $image_url[0];
} else {
echo get_bloginfo( 'template_directory' ) . '/images/thumbnail.png';
} ?>

<!-- 最新の投稿5件を表示 -->
<ul>
<?php
$args = array(
'posts_per_page' => 5 // 表示件数の指定
);
$posts = get_posts( $args );
foreach ( $posts as $post ): // ループの開始
setup_postdata( $post ); // 記事データの取得
?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php
endforeach; // ループの終了
wp_reset_postdata(); // 直前のクエリを復元する
?>
</ul>

●特定投稿の項目表示一覧

<!-- サムネイル画像(アイキャッチ) -->
<?php echo get_the_post_thumbnail(記事ID ); ?> 

<!-- タイトル -->
<?php get_the_title( 記事ID ); ?> 

<!-- URL -->
<?php get_permalink( 記事ID ); ?> 

<!-- 本文 -->
<?php echo get_post( 記事ID )->post_content; ?> 

<!-- 本文(改行あり) -->
<?php $post_id = 記事ID;
$post = get_post($post_id);
echo apply_filters('the_content',$post->post_content); ?> 

<!-- サムネイル画像(アイキャッチ)のURL -->
<?php echo wp_get_attachment_url(get_post_thumbnail_id(記事ID)); ?> 

● 基本的なループ

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<!-- 内容  -->
<div><?php the_content(); ?></div>
<?php endwhile; else: ?>
<!-- 投稿なし  -->
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>

● 特定のカテゴリを特定件数表示

<?php
$posts = get_posts(array(
'posts_per_page' => 2, // 表示件数
'category' => '1' // カテゴリID/スラッグ名
));
?>
<?php if($posts): foreach($posts as $post): setup_postdata($post); ?>
<!--表示する内容が入ります。-->
<hn><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></hn>
<p><?php the_time('Y/m/d') ?></p>
<p><?php the_excerpt(); ?></p>
<p><a href="<?php the_permalink() ?>">続きを見る</a></p>
<!--表示する内容ここまで-->
<?php endforeach; endif; ?>

● ページング

<!--アーカイブページの場合-->
the_posts_navigation( array(
'prev_text'    => '< 古い投稿',
'next_text'    => '新しい投稿 >'
)
);

<!--シングルページの場合-->
the_post_navigation( array(
'prev_text'    => '< 古い投稿',
'next_text'    => '新しい投稿 >'
)
);

● サイドバーとかで

<!--カレンダー-->
<?php get_calendar(); ?> 

<!--アーカイブ特定件数-->			
<ul>
<?php wp_get_archives( 'type=postbypost&limit=5' ); ?>
</ul> 

<!--カテゴリー一覧-->
<ul>
<?php wp_list_categories( 'title_li=' ); ?>
</ul>

Atom vs VSCode vs Brackets、もっとも使いやすいエディタはこれだ!…といいな

typewriter

真夜中WEBではWYSIWYGエディタを使用せず、テキストエディタを使ってホームページ制作を行っております。 具体的にはWindowsでは「サクラエディタ」を、Macでは「mi」を使用しているんですが、OSごとにエディタ…続きを読む

もっともっとモックアップを活用しよう 1

candle-mock-up

Mockup(モックアップ ※模型の意)とはデザインなどの現場で使われる手法の一つで、作成過程で完成イメージをビジュアル的に確認するために使われるもので、プレゼンテーションやブランディングイメージ作成シーンに欠かせないも…続きを読む

画像をグループでソート、クリックでライトボックス表示し、かつjquery3.xに対応させる

サイト内で複数の画像をまとめて表示するときに項目でソートできるjqueryのプラグイン「Shuffle.js」。 まずはデモページをご覧ください Shuffle.jsCategorize, sort, and filte…続きを読む

DNSサーバーを切り替える前に切り替えた後の表示を確認する方法

理由は様々ですが、既存のホームページをまるごと他のサーバーに移転したいとのご依頼を承ることがあります。 通常の静的なサイトの移転でドメインが変わらない場合には基本的にサーバーに置いてあるフォルダ・ファイル群を古いサーバー…続きを読む

ユーザビリティ向上のためにサイトの表示スピードを改善する

highway

真夜中WEBがコンセプトとして掲げる3つの要素に「軽さ」があります。 軽さとは、サイトを構成するhtmlやcss、javascript、php、画像などのファイル群自体の容量の小ささを言いますが、このことだけにとどまらず…続きを読む

ホームページに3DCGコンテンツを埋め込んでブラウザでグリグリ動かす1

3D

3DCGコンテンツの埋め込み方法としては、 1、sketchfabという3DCGデータ投稿・共有サービスを利用してサクッと埋め込む方法 Sketchfab – Your 3D content on web, …続きを読む