そのぺーじのURLを表示する
<?php echo the_permalink(); ?>
「そのページのタイトル | そのサイトの名前」 を表示する
「ページのタイトル」 <?php wp_title(''); ?> サイト名 <?php bloginfo('name'); ?> 「ページのタイトル | サイトの名前」 <?php wp_title( '|', true, 'right' ); bloginfo('name'); ?>
テーマファイルのディレクトリURL
<?php bloginfo('template_url'); ?>
各ページごとにテンプレートを選択できるようにする
書き方はsingle.phpと同じ
ヘッダーの呼び込みより上に以下を記載することでページ編集内でテンプレートを選択できるようになる。
(テンプレートネーム:News の場合)
<?php query_posts(‘post_type=post&paged=’.$paged); ?>
カスタムフィールドを利用して、keyword description robots その他meta情報を設定する
functions.php に以下を設定
<?php // 「投稿」と「固定ページ」へカスタムフィールドを追加 add_action('admin_menu', 'add_custom_fields'); add_action('save_post', 'save_custom_fields'); // 記事ページと固定ページでカスタムフィールドを表示 function add_custom_fields() { add_meta_box( 'my_sectionid', 'カスタムフィールド', 'my_custom_fields', 'post'); add_meta_box( 'my_sectionid', 'カスタムフィールド', 'my_custom_fields', 'page'); } function my_custom_fields() { global $post; $robots = get_post_meta($post->ID,'robots',true); $keywords = get_post_meta($post->ID,'keywords',true); $description = get_post_meta($post->ID,'description',true); $toptitle = get_post_meta($post->ID,'toptitle',true); $headmeta = get_post_meta($post->ID,'headmeta',true); echo '<p>検索ロボット(all または noindex, follow)<br />'; echo '<input type="text" name="robots" value="'.esc_html($robots).'" size="50" /></p>'; echo '<p>キーワード(半角カンマ区切り)<br>'; echo '<input type="text" name="keywords" value="'.esc_html($keywords).'" size="60" /></p>'; echo '<p>ページの説明(description)30文字以上160文字以内</p>'; echo '<textarea name="description" value="'.esc_html($description).'" maxlength="160" rows="4" cols="40" /></textarea>'; echo '<p>H1タイトル<br>'; echo '<input type="text" name="toptitle" value="'.esc_html($toptitle).'" size="60" /></p>'; echo '<textarea name="headmeta" rows="4" cols="40" value="'.esc_html($headmeta).'"></textarea>'; } // カスタムフィールドの値を保存 function save_custom_fields( $post_id ) { if(!empty($_POST['robots'])) update_post_meta($post_id, 'robots', $_POST['robots'] ); else delete_post_meta($post_id, 'robots'); if(!empty($_POST['keywords'])) update_post_meta($post_id, 'keywords', $_POST['keywords'] ); else delete_post_meta($post_id, 'keywords'); if(!empty($_POST['description'])) update_post_meta($post_id, 'description', $_POST['description'] ); else delete_post_meta($post_id, 'description'); if(!empty($_POST['toptitle'])) update_post_meta($post_id, 'toptitle', $_POST['toptitle'] ); else delete_post_meta($post_id, 'toptitle'); if(!empty($_POST['headmeta'])) update_post_meta($post_id, 'headmeta', $_POST['headmeta'] ); else delete_post_meta($post_id, 'headmeta'); }
テンプレートの利用したい場所に以下のように書き込む
<?php $robots = get_post_meta($post->ID, 'robots', true); $description = get_post_meta($post->ID, 'description', true); $keywords = get_post_meta($post->ID, 'keywords', true); $toptitle = get_post_meta($post->ID, 'toptitle', true); $headmeta = get_post_meta($post->ID, 'headmeta', true); ?> <?php //headmetaの場合 if(empty($headmeta)): //何もなかったら以下を記載 ?> 通常記載するもの <?php else: //記載があれば以下コードでそれを呼びだす ?> <?php echo $headmeta ?> <?php endif;?>
使用例
<meta name="robots" content="<?php echo $robots ?>" /> <meta name="keywords" content="<?php echo $keywords ?>"> <meta name="description" content="<?php echo $description ?>"> <?php echo $headmeta ?>
抜粋を使う
<?php bloginfo('description'); ?>
アイキャッチを使う
functions.php に以下を設定
add_theme_support('post-thumbnails');
使用する場所に以下を記載
<?php echo get_the_post_thumbnail( $post_id, 'large', array( 'class' => 'alignleft' ) ); ?> //()内のlarge は画像のサイズを指定。 //その他のサイズ指定は以下 the_post_thumbnail(); // パラメータなし -> 'post-thumbnail' the_post_thumbnail( 'thumbnail' ); // サムネイル (デフォルト 150px x 150px :最大値) the_post_thumbnail( 'medium' ); // 中サイズ (デフォルト 300px x 300px :最大値) the_post_thumbnail( 'large' ); // 大サイズ (デフォルト 640px x 640px :最大値) the_post_thumbnail( 'full' ); // フルサイズ (アップロードした画像の元サイズ) the_post_thumbnail( array( 100, 100 ) ); // 他のサイズ
アイキャッチのURLのみを利用する
<?php echo wp_get_attachment_url( get_post_thumbnail_id() ); ?>
例:アイキャッチがあればそれを meta property=”og:image” に利用する
<?php if (is_singular()) { if (has_post_thumbnail($post_id)) { $ogimage = wp_get_attachment_url( get_post_thumbnail_id() ); } else { $ssdir = get_stylesheet_directory_uri(); $ogimage = $ssdir."/images/ogimg.jpg"; } } else { $ssdir = get_stylesheet_directory_uri(); $ogimage = $ssdir."/ogimg.jpg"; } ?> <meta property="og:image" content="<?php echo $ogimage; ?>">
又は
<?php if (has_post_thumbnail($post_id)) { $image_id = get_post_thumbnail_id(); $ogimage1 = wp_get_attachment_image_src($image_id, true); $ogimage = $ogimage1[0]; }else { $ssdir = get_stylesheet_directory_uri(); $ogimage1 = $ssdir."/ogimg.jpg"; } ?> <meta property="og:image" content="<?php echo $ogimage; ?>">
投稿日時
<?php the_time('Y/m/d') ?> // 記事投稿時間 <?php the_modified_date('Y/m/d') ?> // 記事更新時間
ナビゲーションを表示
管理画面 > 外観 > メニュー で作成したメニューをサイトに表示します。
functions.php に以下を設定
// カスタムメニューを有効化 add_theme_support( 'menus' );
<?php // TopMENUを使用 wp_nav_menu( array('menu' => TopMENU' )); ?> 細かく設定の場合は以下 <?php $wpmenu = array( 'menu' => 'TopMenu', 'menu_class' => 'menu', //ul の クラス名 デフォルト:menu 'menu_id' => 'menu',//ulのID。初期値: '{メニューのスラッグ}-{連番}' 'container' => false,//ulのラップ・親ボックス なしにする場合は false。初期値は'div' 'container_class' => '',//初期値 'menu-{メニューのスラッグ}-container' 'container_id' => '',//初期値: なし 'fallback_cb' => 'wp_page_menu',//メニューが存在しない場合にコールバック関数を呼び出す 'before' => '',// リンクテキストの前のテキスト 'after' => '',//リンクテキストの後のテキスト 'link_before' => '',//リンクの前のテキスト 'link_after' => '',//リンクの後のテキスト 'echo' => true,//メニューをHTML出力する(true)か、PHPの値で返す(false)か 'depth' => 0,//何階層まで表示するか。0 は全階層。 ); wp_nav_menu( $wpmenu ); ?>
</head>前の決まり
<?php wp_head(); ?> を入れる
</footer>前の決まり
<?php wp_footer(); ?> を入れる
次のページのリンク index.html用
<!-- pager --> <?php if ( $wp_query -> max_num_pages > 1 ) : ?> <!--もしページ数が 1ページより多かったら--> <div class="navigation"> <div class="alignleft"><?php next_posts_link('« PREV'); ?></div> <div class="alignright"><?php previous_posts_link('NEXT »'); ?></div> </div> <?php endif; ?> <!-- /pager -->
表示している投稿は一覧表示に含まない
<?php $args = array( 'cat' => '4',//カテゴリー4の投稿 'post__not_in' => array($post->ID),//現在の投稿を含まない 'post_status' => 'publish', // 公開済の投稿 'posts_per_page' => 8 // 投稿を8件表示 ); $the_query = new WP_Query($args); if($the_query->have_posts()): ?> <?php while ($the_query->have_posts()): $the_query->the_post(); ?> ループする内容 <?php endwhile;// 繰り返し処理終了 else : // ここから記事が見つからなかった場合の処理 ?> <p class="headline h3">記事はありません</p> <p class="btn col-btn btn-brown">お探しの記事は見つかりませんでした。</p> <?php endif; ?>
array(); で絞り込める内容
'post_type' => 'カスタム投稿タイプ名', // カスタム投稿タイプ 'post__not_in' => array( 1,2,3,4 ),//投稿ID 1,2,3,4 を除外 'tax_query' => array( array( 'taxonomy' => 'カスタム分類名', // 'field' => 'slug', 'terms' => 'ターム名', // ターム名 で絞り込む 'operator' => 'NOT IN', // ターム名を除外する 'order' => 'ASC'//昇順で並び変え ) )