サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
100webdesign.jp
WP REST API から記事やユーザー情報を取得できないようにする WordPressは WP REST API という外部からhttp通信でデータを取得・送信できる仕組みを内部に実装しました。 たとえば、以下のサイトにアクセスすれば当サイトのユーザー一覧情報が見られます。 https://100webdesign.jp/wp-json/wp/v2/users 同様に、当サイトの投稿の一覧情報が欲しければ以下にアクセスすれば見られます。 https://100webdesign.jp/wp-json/wp/v2/posts ほうほう。 ん? と思った方、いますよね。 投稿は別に良いとしても、WordPressの管理画面のユーザーIDばれちゃってんじゃん。 そうです。WordPressにおいて管理画面のユーザーIDは公開情報に属します。 だから何もしなければ、誰でも見られる状態なのです。
ユーザー単位で投稿できるカテゴリーを限定する 多店舗展開している企業サイトなどで、店舗ごとにサイト運用担当者を置き、店舗ごとにお知らせやブログを作成したい、なんてことがあります。 こういった場合、最初に頭に浮かぶのはマルチサイトWordPressを使って一つのWordPressで複数のブログを運営する方法です。 しかし、マルチサイトWordPressと通常のWordPressではシステム構造が異なるため、その違いや挙動について詳しい知識がないと、思わぬ要件で“ハマって”しまうことにもなりかねません。 できればシングルサイトWordPressで作りたい・・・。 では、改めて要件を整理しましょう。 店舗ごとにお知らせやブログを作成したいということは・・・店舗ごとにユーザーアカウントを作成し、そのアカウントではおのおのの店舗カテゴリーの投稿だけしかできないようにすればいいわけですよね。 つまり「
GET値を contact form 7 に渡してチェックボックス項目を選択状態にする 以前の事例で GET値をContact Form 7に渡してフォームに埋め込む GET値を contact form 7 に渡してプルダウン項目を選択状態(selected)にする を掲載しました。 続きまして、今回はチェックボックスを制御してみます。 Contact Form 7はチェックボックスのデフォルトチェックをこのように表現します。 default:1_2_3 これで、チェックボックスの最初から1つ目、2つ目、3つ目をチェック状態にすることを表します。 これが分かればあとは簡単です。 テーマのfunctions.phpに次のように記述します。 function kaiza_form_check_filter($tag) { $formName = 'checkbox_name'; //cont
固定ページにページネーション機能を持たせる テーマ販売あり WordPressに長く携わっていると、固定ページで一覧表示してページネーションまでしたい、という場面がよく出てきます。 一覧表示はともかく、ページネーションまでしようとなるとひと工夫が必要です。 そこで、例として「services」というカスタム投稿タイプの記事の一覧を固定ページに出して、なおかつページネーションまでさせる方法を紹介します。 まず、その固定ページ用の専用テンプレートを作りましょう。 たとえば固定ページのスラッグが arekore だとすると、 WordPressのルールで、page-arekore.php を用意してあげれば、デフォルトテンプレートの page.php ではなく page-arekore.php を読み込んでくれます。 page-arekore.php に以下のように記述します。 <?php $p
固定ページだけ自動でpタグが入らないようにする WordPressの非常に便利な機能が自動pタグ挿入機能。開始時にpタグ入れて、改行すると自動でpタグを閉じてくれるやつです。 ただ、ときにこの機能が邪魔な時もありますよね。 そんなときは、クライアントが運用中に入力していく投稿ページにはpタグ自動挿入機能を残して、 固定ページだけ機能を動かないようにするといいです。 テーマのfunctions.phpに下記を記述。 add_filter('the_content', 'wpautop_filter', 9); function wpautop_filter($content) { global $post; $remove_filter = false; //自動整形を無効にする投稿タイプを記述 =固定ページ $arr_types = array('page'); $post_type =
メニュータグ wp_nav_menu をカスタマイズして第一階層のメニューのリンクテキストをhタグで囲う WordPressのメニューを制御する「wp_nav_menu」。 グローバルメニューやサイドメニューなどで使う関数で、管理画面の「メニュー」で登録した内容をhtmlとして出力してくれます。 出力されるメニューは、 <ul id="xx" class="xx"> <li id="xx" class="xx"> <a href="/menu1/">メニュー1</a> <ul id="xx" class="xx"> <li id="xx" class="xx"> <a href="/menu1/menu1-child1/">子メニュー1</a> </li> </ul> </li> </ul> たとえば階層構造があると上のような感じになります。リンクのaタグはliで囲われているだけですが、メ
Contact Form 7で、メールアドレスの確認用入力と一致チェック機能をつける 問い合わせフォームで最も大事な入力項目はメールアドレスですね。 このメールアドレスの誤入力を未然に防ぐために、フォームにメールアドレス入力欄を2つ設けて、一致した場合にOKとするやり方があります。 これをContact Form 7でやってみるとこうなります。 テーマのfunctions.phpに以下を記述。 add_filter( 'wpcf7_validate_email', 'wpcf7_validate_email_filter_extend', 11, 2 ); add_filter( 'wpcf7_validate_email*', 'wpcf7_validate_email_filter_extend', 11, 2 ); function wpcf7_validate_email_filt
記事の表示順をカスタムフィールドの値で制御する WordPressでは記事の表示順は日付の最新順がデフォルトです。 これをサイト運営者側で自由にコントロールしたいことは多々あります。 いろいろな方法がありますが、今回はカスタムフィールドの値でコントロールする方法のご紹介です。 表示順の数字を入力するためのカスタムフィールド(型は「数値」)を登録します。 このフィールドに入れた数字の小さい順に記事が並ぶようにしたいなら、 $post = get_posts( array( 'post_type' => $post_type, 'post_status' => 'publish', 'posts_per_page' => -1, 'meta_key' => 'order_num', //カスタムフィールド名 'orderby' => 'meta_value_num', 'order' => '
GET値をContact Form 7に渡してフォームに埋め込む テーマ販売あり 採用やセミナー参加などで参加フォームに誘導する場合、前のページの値を引き継いできてフォームに突っ込みたいですよね。 ここでは、GETで取得した値をContact Form 7に渡してフォームに埋め込む方法です。 例として、投稿IDをGETで取得してその投稿IDが属するタームをフォームに埋め込んでみます。 まず、テーマのfunctions.php に下記を追記します。 function kaiza_form_tag_filter($tag){ if ( ! is_array( $tag ) ) return $tag; if(isset($_GET['jc'])){ //投稿ID $postid = htmlspecialchars($_GET['jc']); $name = $tag['name']; $te
SEO的観点からカスタムタクソノミー(カスタム分類)のスラッグをカスタム投稿タイプと同じにする テーマ販売あり SEO的観点からも構造的観点からも、カスタムタクソノミー(カスタム分類)とカスタム投稿タイプのスラッグは同じであるべきです。 しかし、WordPressの場合、カスタム投稿タイプを登録しても自動でカスタムタクソノミーを登録してくれません。つまり別物として別途定義しないといけないんですよね。無論、同スラッグにはなりえない。 しかたないのでカスタムタクソノミー(カスタム分類)とカスタム投稿タイプを別の名称で登録するのですが、ここで問題発生です。 例)カスタム投稿タイプ:blog、カスタムタクソノミー:blog_cat、ターム:term1 の場合 何もしなければblogのアーカイブページは https://100webdesign.jp/blog/ になります。 いっぽう記事ページは
固定ページの下層にカスタム投稿を設置する これは非常に簡単です。 たとえば、採用ページ(スラッグ recruit とします)があってそこは固定ページで作る、さらにその下層に「先輩の声」みたいな固定ページがあってもかまいません。 そして、その固定ページの下層に募集要項(スラッグ guideline とします)ページを作り、これだけWordPressの管理画面でメニュー化するためにカスタム投稿で作り動的に管理する、ということをしたい場合、 functions.php のカスタム投稿タイプ登録において、以下のように記述します。 register_post_type( 'guideline', /* post-type */ array( 'labels' => array( 'name' => '募集要項', //省略 ), //省略 'rewrite' => array('slug' => '
ページに別の固定ページの内容を表示する みなさんは、記事のアーカイブページに記事一覧以外に載せたいコンテンツがある場合、どう記述していますか? archive.php に直接htmlを書いてしまう方、いやそもそも一覧以外にコンテンツを載せない方などいろいろいると思いますが、 WordPressの固定ページでhtmlを書いてその内容をアーカイブページに差し込む方法もありますよ、という話です。 固定ページで書く理由は一つですね。 納品した後、PHPファイルを編集しなくても、WordPressの管理画面で編集ができる。 これならFTPだのhtmlだのに明るくないクライアントでも簡単にできますね。 やり方は簡単です。 archive.phpに以下を記述します。 $page_id = 999; //表示したい固定ページのページID $alternative_post = get_post( $pag
アーカイブページで、ターム(カテゴリ)ごとに分けて記事一覧を表示する テーマ販売あり いろいろ製品があってそれをカテゴリ、ジャンルごとに分けて一覧表示したい、というニーズは結構あります。 そんなときの解決方法を2つご紹介します。 例としてカスタム投稿タイプを items、カスタム分類名を items_cat としてますので、そのつもりで読み進めてください。 普通にタームごとに記事一覧を表示するバージョン まず普通バージョンですが、テーマのカスタム投稿アーカイブページ(archive-items.php)の記事一覧(アイキャッチあり)表示部分を次のように記述します。 <?php // カスタム投稿タイプ $post_type = 'items'; // カスタム分類名 $taxonomy = 'items_cat'; // パラメータ $args = array( // 親タームのみ取得 '
このページを最初にブックマークしてみませんか?
『ウェブデザイン提案無料&最新ウェブ制作ノウハウ無償提供の【100ウェブ】』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く