yousan
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: 複数のカテゴリを持つ記事で、同じカテゴリの別記事を表示したいフォーラム: 使い方全般
返信が含まれるトピック: 複数のカテゴリを持つ記事で、同じカテゴリの別記事を表示したい早速入れてみられたそうで、そして動いているようでよかったです(^ν^)
引数チェックをしていない件については、「リファレンスを調べたり、実際に動かしたりしていないので、”category__in”などの名前が正確なものか自信がない」との意味でした。
フォーラム: 使い方全般
返信が含まれるトピック: get_commentsについて上記のコードだとコメントが表示されない、ということでしょうか。
確認なのですが、エリアというメタ情報は記事のカスタムフィールドでしょうか?
コメントにもメタ情報があり、get_commentsのmeta_queryはこちらを参考にしている気がします。
http://codex.wordpress.org/Function_Reference/add_comment_meta記事のメタ情報をもとにコメントを集めたい場合にはまた後ほど。
// get_commentsのmeta_queryを使ったことがないので参考までに。
フォーラム: 使い方全般
返信が含まれるトピック: 画像のアップロード先変更について参考サイトのみで中途半端になってしまいましたね。
mutowpさんは既に記事に変更をかけられたとのことで、先の1番のデータを置換する方法についてお伝えします。
postmetaテーブルに_wp_attached_fileというキーにてファイルの場所が格納されています。
これをsqlにて書き換えてみる方法について説明します。
sqlの使い方が分からない場合には他の方法にて。update yousan_tmp.wp_postmeta set meta_value = REPLACE(meta_value, '2014/01/', '/') where meta_key = '_wp_attached_file';
スキーマ名、テーブル名、についてはご自身の環境に応じて変えてください。
またMySQLには正規表現と置換を同時に行うことができません。今回は2014年1月のみを対象としました。
2000件とのことで、年間は高々12月ですので、多くとも100行ぐらいに収まるかと思います。
エクセルのオートフィルと組み合わせて年月の所をコピーしてください。他にpostsテーブルのguidにも同じ内容が格納されています。こちらも何かに利用されている気がしましたが覚えていません
http://codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note
(またもや英語ですみません(;´Д`)
斜め読みすると、キャッシュされたりするときにこの値が重要だから変えちゃダメ!と言っている気がします。
guid自体はあくまで識別子なので、このままでも大丈夫かもしれません。以上となりますが、テーブルデータの変更を伴いますので、ご自身で責任をもってバックアップ等を忘れないよう気を付けてください。
フォーラム: 使い方全般
返信が含まれるトピック: 複数のカテゴリを持つ記事で、同じカテゴリの別記事を表示したいなるほど、複数のカテゴリを持つ記事に対して、同じカテゴリで関連する記事などを表示させたい、とのことですね。
条件とコードを見ていたのですが、厳密には不可能かと思われます。
p1: 記事1, p2: 記事2 , p3: 記事3
としたとき、それぞれのカテゴリが
p1: (a-1, b-2)
p2: (a-1)
p3: (b-2)
となっているとすれば、p1のsingle.phpでp2を取得して表示させたいのにp3が表示されてしまう、ということですね。これはどこかしらかでカテゴリAを辿って表示させよ、という命令が必要です。
作者側が明示的に特定のカテゴリを埋めてやる必要がある、ということですね。プログラムは自動的にどの親カテゴリを重要視するかわからないので指定が必要、ということです。コード中にある
$cat = get_the_category(); $cat = $cat[0];
ですが、p1で取得されたカテゴリ一覧から、無作為に0番目のカテゴリを採用しています。ここで恐らく後ろ側のb-2を関連させるカテゴリとして採用してしまっているのですね。
状況によってはa-1が取れるかもしれませんが、a-1が取られるかb-2が取られるかは不明瞭です。さてここで、カテゴリAを親カテゴリとしてその兄弟カテゴリを基準に他の記事を、ということでしたら可能です。
僕から参考までに、コード例を載せておきます。AのカテゴリIDを事前に調べておき、Aカテゴリにひっかかる子カテゴリを拾っておいてからwp_queryする方法です。
foreach(get_the_category() as $category) { if ($category->parent == 2) { // 2はAのカテゴリのIDとします $categories_to_put[] = $category->term_id; } } $wp_query = WP_Query(array('category__in' => $categories_to_put));
このコードは引数チェックなどしていない不完全ですので参考までにどうぞ。
フォーラム: 使い方全般
返信が含まれるトピック: ログインページもサイト自体も全く表示されない。ページのロードが終わらなくなってしまった、サーバからの応答がない状態ということですね。
恐らくですがwordpress本体を含むphpのエラーが疑われます。wp_debugをonにしてもダメとのことで、
1. エラーログを調べつつ
2. 特定できなければwordpress本体から順に何が動くか、何が動かないかを試す
という手段になるかと思います。ロリポでのログの取り方は下記にありましたのでご参考ください。
http://lolipop.jp/manual/user/access-log/まずはwordpressをサラの状態で置き直して、テーマ、プラグインを一つずつアップロードしなおしてください。
もちろんですが現在の状態のバックアップは忘れないようにしてください。
Extend Wingsさんも仰っている通り、現在のものをリネームで待避するのが良いと思います。フォーラム: 使い方全般
返信が含まれるトピック: カテゴリ一覧に特定のタブをもつ投稿を先頭にタブではなくタグ、でしょうか。
カテゴリの記事一覧で上の方に表示させたい、重要な、見せたいタグがあるということですね。結論からすると「できなくはない、が面倒くさい」です。
1ページにすべてを表示する、という制約のある状態で簡単な解決方法を提示します。
1. 現在のカテゴリ and 特定のタグの記事一覧を抜き出す (tag__in)
2. ループを掛ける
3. query_posts(WP_Query)のpost__not_inに先の記事をいれて再度ループといったところでしょうか。ペジネーション(ページ送り)を付けると大変そうです。
記事数が少ない(1000件未満)のであれば他の力業も繰り出せそうです。すこし面倒ですが、僕からの一つの解決策として提案します。
フォーラム: 使い方全般
返信が含まれるトピック: WordPressのブログを一般に公開できません。URLありがとうございます確認させてもらいました、たしかにbasic認証がかかっていますね。
wpディレクトリにも、辿って上位のディレクトリにも.htaccessファイルがない、となると残る可能性は二つですね。
一つはwebサーバ全体の設定(httpd.conf他)でbasic認証が掛けられている場合、もう一つはphpで掛けている場合です。
ロリポは少し前にあった事件より、ユーザーが(クイック)インストールしたwordpressへ一括して.htaccessを置く、というアクセス制御を行っていました。
さくらではそういった事は聞いたこと無いのですが、.htaccessの挙動と設置について十分理解してらっしゃるようですし、一度この件についてさくら側で制限が掛かっていないか確認されると良いかと思います。
併せて、ウェブサーバのアクセスログ、エラーログにもしかするとbasic認証をドコで掛けているか書いてあるかもしれません。もう一方、phpでbasic認証が掛かっている場合についてです。wordpressではbasic認証を掛けることはないのですが、可能性としてはプラグインでしょうか。一度プラグインを全部待避して動かないようにしてみてください。
待避の方法はpluginsディレクトリの名前をplugins_のように一時的に変更すると簡単です。
(あとで有効化する必要があるかも知れません)フォーラム: 使い方全般
返信が含まれるトピック: admin権限以外を管理画面にアクセスさせない方法フォーラム: 使い方全般
返信が含まれるトピック: admin権限以外を管理画面にアクセスさせない方法即席ですが、以下のコードをfunctions.phpに加えてみてはどうでしょうか?
add_filter('admin_init', 'kick_nonadmin_user'); function kick_nonadmin_user() { $current_user = wp_get_current_user(); if (in_array('administrator', $current_user->roles)) { return; } else { wp_redirect(get_bloginfo('home')); } }
フォーラム: 使い方全般
返信が含まれるトピック: 画像のアップロード先変更について画像を移動したら記事中の画像URLが元のままになってしまった、とのことですね。
WordPressでは記事本文に画像のリンク (例: img src=”wp-content/uploads/1999/01/01″) が入っていたりします。こちらが過去のままになっていると見受けます。
この問題を解決するためには2つの方法を提案します。
1. 記事全文に置換を掛ける
http://wordpress.org/support/topic/how-to-change-image-urls-after-wp-move?replies=7
本家のフォーラムにもURLが変わってしまったのでナントカしたい、というケースがありました。
こちらはphpMyAdminにて本文をダンプし、置換を掛けた後に戻す、ということを勧めたようです。2. .htaccessとmod_rewriteを使ってリダイレクトをかける
http://stackoverflow.com/questions/12682302/mod-rewrite-rules-for-wordpress-upload-path
こちらに同じような例が載っていましたので掲載します。こちらのほうがお手軽ですが恒久的にリダイレクトが必要で、.htaccessのmod_rewriteは少し難しいです。フォーラム: 使い方全般
返信が含まれるトピック: フロントページで、カスタム投稿タイプ記事一覧のページ送りをしたいpaginate_linksは大変ですよね。
自分のサイトでも似たURLですので、現在動いているpaginate_linksの引数を掲載しますね。
evijpのケースもこのコードで動くだろう、というわけでは無いので参考までにどうぞ。$args = array( 'base' => add_query_arg( 'paged', '%#%' ), 'format' => '', //'format' => 'page/%#%/', 'total' => $wp_query->max_num_pages, 'mid_size' => 3, 'current' => ($paged ? $paged : 1), 'type' => 'list', 'prev_next' => true, 'prev_text' => '«前へ', 'next_text' => '次へ»' ); echo paginate_links( $args );
フォーラム: 使い方全般
返信が含まれるトピック: WordPressのブログを一般に公開できません。なるほど、さっそくファイルマネージャで確認されたけれど認証が外れないのですね。
まだパスワード入力が求められるとのことで、それがBASIC認証かどうかを確認させてください。下記はBASIC認証時に出てくる画面です。この画面でしょうか?
BASIC認証の入力例 (ブラウザによって違うため何種類かあります)参考までに、こちらはWordPressのログイン画面です。
WordPressのログイン画面.htaccessによるBasic認証は階層を辿って対象となります。
少しややこしいのですがlogtail0602さんが早速ファイルマネージャで確認されたとのことで、この点について説明します。
/wp/
にWordPressがインストールされた場合、
/wp/.htaccess
にファイルがあればその認証が、さらに
/.htaccess
にファイルがあればその認証もかかります。
確認されたフォルダから一つ上のフォルダでも確認してみてください。フォーラム: 使い方全般
返信が含まれるトピック: WordPressのブログを一般に公開できません。一般ユーザ公開用のURLは、管理画面左上の「サイトの確認」から調べることができます。 http://ドメイン名.sakura.ne.jp/wp/ で合っていると思われます。
認証を求められる、というと「Basic認証」というものが掛かっているかと思われます。
Basic認証は.htaccessファイルというファイルによって制御されており、今回の問題がBasic認証であればこのファイルを削除することで認証を無くすことになります。さくらインターネットですとファイルマネージャにて認証の設定を簡単に行えるようです。
ファイルマネージャーでアクセス制限をする
上記ページにある「パスワード制限」というところのチェックを外してみてはどうでしょうか。フォーラム: 使い方全般
返信が含まれるトピック: query_varsの中身がカラになっている何も起こらない、という事でしたらアーカイブが適用されているかどうか、でしょうか。
以下のコードを埋めた結果はどうなるでしょうか?<?php global $template; print_r($template); ?>
また該当のページのURLはどうなっていますか?
http://www.example.com/?year=2014
のような形式で教えてもらえますか?