jim912
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: タームのリンクの取得についてfront-page.phpには、複数タームがあるなかの、1つだけ表示させたかったので、
$out[0] =
とゼロを放り込んでみたのですが…間違ってるだろうな…と。
このコードだと、取得した複数タームのうち最後のタームが採用されます。理由はおわかりになるでしょうか。
通常カテゴリーを1つだけ表示させる、
<?php $cat = get_the_category(); $cat = $cat[0]; { echo '<a href="' . get_category_link($cat->term_id) . '" title="'. esc_attr($cat->name) . '">' . $cat->cat_name . '</a>'; } ?>
のようにかければ、functions.phpに書くのは1つで済むのになぁとまでは考えているのですが…。
いくつか方法は考えられると思います。
- 関数内で条件分岐タグを使って、分岐処理させる
- 関数の引数によって、class の属性値、出力数を変化させる
なお、関数冒頭にある
$post = get_post( $post->ID );
において、$post->ID は取得できていないはずですので、引数を指定する必要はありません。
フォーラム: 使い方全般
返信が含まれるトピック: アーカイブの固定ディレクトリ名を削除したいフォーラム: 使い方全般
返信が含まれるトピック: リニューアル時の投稿のパーマリンク変更についてURLの見た目をどの程度気にされるかによりますし、最終的には先々のことも考えてご自身の判断になります。
ちなみに、データベースをそのまま移行(投稿のIDが変わらない)するのであれば、パーマリンクの設定を変更してもリダイレクトされますし、最終的には検索エンジンの登録もパーマリンクのものに変更されていきます。
フォーラム: 使い方全般
返信が含まれるトピック: 特定タームを除外してカウント(件数表示)したいカテゴリーやタームの件数は、表示時の負荷を下げるため、記事が更新された際に集計してあります。get_terms や get_term_by などで得られるカウント数はこの数値を用いているだけなので、別のタームに属するものを除いてカウントといったことは簡単にはできません。
やるとなれば、register_taxonomy のパラメータ update_count_callback を指定し、更新時にカウント数を計測する関数をオリジナルのものに差し替えるか、WP_Query 等を用いて、タームA,タームB双方に属する記事数を取得して、タームAのcountから引くかだろうと思われます。
また、そもそもタームBのカウントを引かなければならないという事自体、設計として適切かどうか、他に実装方法がないかと検討もされた方が良いかもしれません。
フォーラム: 使い方全般
返信が含まれるトピック: 管理画面が更新されません編集者権限でログインすると、
管理画面の左のメニューから固定ページと投稿の欄からカテゴリーが消えてしまいました。これはもともと
functions.php
に自分で記述していたものです。まず、何を記述していたのか教えていただけますか。
文面と結果から推測するに、おそらくは remove_cap などでカテゴリーの編集権限を削ったのではと思いますが。上記である場合、データベースの権限関連の設定自体を書き換えてしまうため、functions.php のコードを削除しただけでは戻りません。
戻すには、add_cap 関数を用いて、再度権限の追加を行う必要があります。
※ User Role Editor などのプラグインでも修復可能なはずです。フォーラム: テーマ
返信が含まれるトピック: get adjacent postでパスワード保護記事を非表示にしたい要は、パスワード保護中の記事を対象外(パスワード設定されていないもののみ)とすれば良いわけです。
以下は、前後記事を同一の作成者の記事のみにするコードですが、この場合は、作成者の p.post_author の替わりに、パスワードが格納される p.post_password が空(パスワードが設定されていない)といったように書き換えれば、パスワード保護記事をスキップ(対象外とする)ことができるはずです。
https://ja.forums.wordpress.org/topic/159037#post-228818フォーラム: 使い方全般
返信が含まれるトピック: 予約投稿の反映のタイミングについてWordPressの編集画面で設定できる時刻は分単位までですが、データベース上は秒単位まで保存されています。このため、データベース上での予約時間が50秒であった場合、感覚的には設定時間より1分ほど遅れるようになります。
遅延を極力小さくするのであれば、同一の分、もしくは過去の時間であれば予約投稿を公開するスクリプトを作成し、サーバcronで毎分動作させるのがベストかと思います。
WordPressのcronと予約投稿の仕組みは、それほど時間に厳密にはなっていません。
フォーラム: 使い方全般
返信が含まれるトピック: WP_Queryでカテゴリ順に並べたいやるのであれば、以下の手法が考えられます。
- カテゴリごとにget_posts
- for 文で0から2のループ
- get_postsで取得した記事の配列ごとに、forの数値の添字が存在するかを判定、存在する場合は、$post に 該当配列要素を代入し、setup_postdata をした後、 タイトルの出力
- ループ終了後の wp_reset_postadata
なお、投稿が複数のカテゴリにまたがっている場合は、重複表示となる(取得済みの記事IDをexclude指定することで回避は可能)ことや、カテゴリ内の記事数が3未満であった場合、その分表示数が少なくなりますので了承してもらう必要があります。
フォーラム: 使い方全般
返信が含まれるトピック: WP_Queryでカテゴリ順に並べたいフォーラム: 使い方全般
返信が含まれるトピック: wordpress4.5.2でuser関連の変数や関数でエラーhttp://mypacecreator.net/blog/archives/1041
あと、cookieの仕組みについて良く理解しておくべきです。
setcookiesetcookie() は、その他のヘッダ情報と共に 送信するクッキーを定義します。 ほかのヘッダ情報と同様に、 クッキーは、スクリプトによる他のあらゆる出力よりも前に 送信される必要があります(これはHTTPプロトコルの制約です)。 <html> や <head> タグはもちろん 空白も含め、あらゆる出力よりも前にこの関数をコールするようにしなければなりません。
フォーラム: プラグイン
返信が含まれるトピック: WordPress Popular Postsのフィルターフックがうまくいかないリンクを取得する get_the_permalink で指定しているのが、$p->id なのですから、アイキャッチ画像を取得する get_post_thumbnail_id で指定するのも、$p->id なのでは?
フォーラム: 使い方全般
返信が含まれるトピック: 一定のファイル名をしていして画像をランダム表示meta_key が _wp_attached_file のカスタムフィールドにファイル名が入っていますので、meta_queryを使って、compare を LIKE で指定すれば可能ではないかと思います。
フォーラム: その他
返信が含まれるトピック: ログイン認証の際、ユーザ名を部分一致にしたい- get_usersで全ユーザーを取得
- foreach で取得した全ユーザーをループ処理
- ユーザーの user_login の値が、入力されたユーザー名($username)に含まれているかを検証。(場合によっては、出現位置や、合致する文字数なども勘案して採否を決定)
- 含まれていた場合は、該当ユーザーの user_login を $username に代入
- $username を return
という流れとなります。
フォーラム: 使い方全般
返信が含まれるトピック: 親テーマのincludeファイルを子テーマfunctions.phpで変更したいinclude ではなく、get_template_part を使うのが、WordPressの標準的な手法です。これを使っておくと、子テーマ内のテンプレート → 親テーマ内のテンプレート の順にテンプレートを探すため、パスをいちいち変えずに済み、子テーマのメリットを十分に活かすことが可能です。
なんからの理由で、get_template_part が使えない場合、使うべきは、 get_stylesheet_directory_uri ではなく、get_stylesheet_directory です。
フォーラム: 使い方全般
返信が含まれるトピック: コメントの仕様についての質問ですがああ、すみません。
コメントの投稿だけでなく表示もですよね。
comments_open フィルターは、コメント投稿なので、投稿されたコメントには影響を及ぼしません。
表示、およびフィードについては、the_comments フィルターにて、必要時以外は空の配列を返すようにしてみてはどうでしょう。