msio
フォーラムへの返信
-
フォーラム: マルチサイト
返信が含まれるトピック: 親サイトにページャをつける要件としては以下のものでよいでしょうか。
・子サイトにはそれぞれ固定のページやお知らせ投稿記事がある
・親サイトは各子サイトのそれらを回収して表示させる
・★各子サイトの取り出したい情報の抽出法は同じ
switch_to_blog から restore_current_blog までの間は子サイト領域なので
その範囲内で get_pages で固定ページ情報を取り出し ★この抽出時条件が同じでいけるか
wp_query でお知らせ投稿を抽出して変数に代入するまたは表示する。スイッチしたあととくになにも指定せず子サイト情報を掲載しているので
それを整形する形ではどうでしょうか。これはページングの問題だと思いますので、ページャは機能しているでしょうか。
ページャの問題が解決してから次に進んではいかがでしょうか。確認行程は以下をお勧めしたいのですがいかがでしょうか。
①抽出したい子サイトの数は予定数である ページング要項確認
$sub_sites = wp_get_sites();
echo count($sub_sites); で表示される個数は子サイトの数と同じ
var_dump($sub_sites); 列挙される変数の blog_id フィールドの値は対象の子サイトのIDである上記2項目に○がついたら
②対象の子サイトにスイッチできているか確認する
switch_to_blog($blog_id_arr[$i]);
echo mb_substr(bloginfo(name);この表示は子サイトのサイトタイトルになっているかどうか
$pages = get_pages( $param ); その範囲内で固定ページを抽出できるかどうか③ページングは可能かどうか ページング稼働確認
対象のURLの末尾を数字にすると $page 変数にそれと同じ数値がはいっていることが確認できるか
echo $page;一つずつクリアできて、③が完了すれば②の段階に「お知らせ記事」抽出クエリを挟んで取得しませんか?
②は連結問題ですが結果的には整形にあたる別問題になればよいと考えているのですがいかがでしょうか。フォーラム: マルチサイト
返信が含まれるトピック: 親サイトにページャをつけるSQLを少なくしても大丈夫だと思うので子サイトの取得方法は変更されてはどうでしょうか。
SQLをご利用になられるのであれば私には変更の案があります。<?php $SQL_text = "";//文字形式が入る用途をしめした変数初期化 //抽出対象ID群作成 //2~48まで抜けなく順どおりなのでループで作成 for($i=2;$i<=48;$i++){ $blog_id_arr[] = $i; } //次の値があるかどうか確認用だと思いますが //次があるかどうかはforでカウント=現在位置 //リミットを配列数にすると固定値保持の必要がないので不要 //$tmp = $blog_id_arr; //作成した抽出対象配列の個数分循環 //未満として一つ減らすのは0起算で「個数分=50、0起算で50カウント=末尾49」のため for($i=0;$i<count($blog_id_arr);$i++){ //作成した配列の循環番号のブログを取得する switch_to_blog($blog_id_arr[$i]); //SQL構文 //全フィールド+ブログIDの番号を実数化した値を改名したフィールドに加え抽出 //全フィールド出力は必要でしょうか。あとブログIDを追加する必要もありますでしょうか //構文は1行ずつにすると分岐などつけやすいと思います $SQL_text .= "(SELECT *, $blog_id_arr[$i] as blog_id "; //スイッチしたブログの投稿を代入してます? $SQL_text .= "FROM $wpdb->posts "; $SQL_text .= "WHERE post_type = 'page' "; $SQL_text .= "AND post_status = 'publish'); //現在位置+1が準備した配列の個数よりも小さければ if(count($blog_id_arr)>($i+1)){ //SQL抽出要件を連結する $SQL_text .= "UNION\n"; } //循環おわり //ブログを戻す restore_current_blog(); } $SQL_text .= "ORDER BY post_date DESC "; $SQL_text .= "LIMIT 50 "; //50連結したメタ投稿データクエリのようなものを実行しようとしていますが //それだけの質量を並列で作業する必要がここにあるのか判断できません $posts = $wpdb->get_results($SQL_text); //あとこのクエリデータの結果から得られるID すなわち最初に作成した変数と同じもので //リスト作成循環を行い各子ブログを読み出しているように見えます。 //結果としてこの全行程=各ブログIDの配列変数($blog_id_arr)の作成と同義ではないでしょうか ?>上記のSQLによる抽出がなくても以下だけで機能するかと思うのですが
当方マルチサイトを扱っていなくまたACFプラグインも使用しておりません。
大変申し訳ございませんがこちらでテストができていないので、文法的におかしなところがあるかもしれません。//子サイト情報取得 これをそのまま循環して blog_id フィールドを取得しても大丈夫 $sub_sites = wp_get_sites(); foreach($sub_sites as $value_sub_sites){ //各子ブログのIDを取得 $blog_id_arr[] = $value_sub_sites["blog_id"]; } //もしくは最上部と同じく手動で作成 //2~48まで抜けなく順どおりなのでループで作成 //手動で作成するとブログの増減に応じて手動で変更の要があるとおもいます for($i=2;$i<=48;$i++){ $blog_id_arr[] = $i; } //12毎ページング //ページ指定がない場合も1ページ目なので代入 //if($page==0){ $page = 1; } //ページ送り個数 $pageNationCount = 12; //ページスタート位置作成 $StartPageID = ($pageNationCount*($page-1));//1ページ目 0x12=0 2ページ目 1x12=12 ページ数-1なので //総ページカウントが指定ページ数のページング個数倍より大きい場合は if(count($blog_id_arr)>($pageNationCount*$page)){ //ページ最後は指定個数 $End__PageID = ($pageNationCount*$page);//1ページ目 1x12=12 2ページ目 2x12=24 }else{ //ページングした末尾数値より準備変数量が少ない場合は代入 $End__PageID = count($blog_id_arr); } //このForがページング for($i=$StartPageID;$i<$End__PageID;$i++){ //各IDでブログ切り替え switch_to_blog($blog_id_arr[$i]); ?> <li> <!-- IDでシフトした現在地サイトのリンク --> <a href="<?php the_permalink(); ?>"> <?php //以下、現在地のサイト(子サイト情報)取得 //画像(返り値は「画像ID」) $img = get_field('shop_images'); $imgurl = wp_get_attachment_image_src($img, 'full'); //サイズは自由に変更してね if($imgurl){ ?> <img src="<? echo $imgurl[0]; ?>" alt=""> <?php } ?> <!-- ふつうに現在地のブログタイトルを取得 --> <p class="list_name"><?php echo mb_substr(bloginfo(name), 0, 25); ?></p> <p class="list_version"><?php $descripstion_text = mb_substr(get_field('shop_description'),0,30,'utf-8'); echo $descripstion_text.'...'; ?></p> <p class="store_link"><?php the_field('shop_tag'); ?></p> </a> </li> <?php restore_current_blog(); } ?> <?php //そしてページャ //$page の値とページングカウントの総数で有無を確認して出力 //ページはURLの末尾に数字が入っているとワードプレスが取得して //グローバルスコープで扱えます $Paging_UP = ""; $Paging_DOWN = ""; if($page){ if(is_numeric($page)){ if($page>1){ $StargPosition = (($page-1)*$pageNationCount); }}else{ $StargPosition = 0; }} if($page>1){ $nextPageNum = ($page+1); }else{ $nextPageNum = 2; } if($EndPosition>(count($blog_id_arr)+$pageNationCount)){ $Paging_UP = "<a href=\"".get_the_permalink().$nextPageNum."/\">NEXT>></a>"; } //1ページ目がパラメータ有無どちらでも稼働するので、1になるときのプレビアスは別に整形 if($page>2){ $Paging_DOWN = "<a href=\"".get_the_permalink().($page-1)."/\"><<PREV</a>"; }else if($page>1){ $Paging_DOWN = "<a href=\"".get_the_permalink()."\"><<PREV</a>"; } //ページャ描画 //戻るがあれば戻る表示 echo $Paging_DOWN = ""; //次があれば次表示 echo $Paging_UP; ?>2回ほど修正した記事を投稿したのですがあまり繰り返すと消えてしまうのでもうこのままでおきます。
不良個所ございますかと思いますが参考程度にいただけると幸いです。フォーラム: マルチサイト
返信が含まれるトピック: 親サイトにページャをつける拝見しましてSQLが大変なことになっているとおもうのですがこれは重くないですか?
本題はそこではないとおもうのでそれはお任せして、ページング対象要素は最終のforeach循環部ですよね。
posts の個数内で、開始点と終了点をpage変数から取得、設定してfor 文でまわすとページになりませんか?ページャを忘れていました。
$page x12 が最大値より小さいときはparmalinkにpost+1をリファレンシャルして、ページ送り次へのリンクを作成して、postが2以上の場合はpost-1のリンクで前に送るがつくれるのではないでしょうか。- この返信は9年、 5ヶ月前にmsioが編集しました。理由: 肝心のページャ機能部分を記載していませんでした。
フォーラム: マルチサイト
返信が含まれるトピック: 親サイトにページャをつけるまさにページャー単体が必要だったのですね。
当方物分かりが悪く受け答えの順序が逆になってしまい申し訳ございません。抽出件数の整形がWordpress既成のものであればwp_link_pagesにてページャーが出るかと思うのですが
独自にループを組まれているのであれば、50件の形がどうなのかわかりませんが以下が参考になりませんでしょうか。//$page; //$店舗50件 = 50件分; //仮に50店舗を配列にしてそれを配列にいれていたら //$店舗50件 //├店舗1array("店舗名","URL"); //├店舗2array("店舗名","URL"); //├店舗3array("店舗名","URL"); //└店舗4array("店舗名","URL"); //$iは0から50未満(49まで)を++(1ずつ加算) for($i=0;$i<count($店舗50件);$i++){ //全件列挙 表示 $店舗50件[$i]["店舗名"].$店舗50件[$i]["URL"]; } //12毎ページング //$page = 1; //1ページ目 ページ指定がない場合も1ページ目なので注意 //if($page==0){ $page = 1; } //ページ送り個数 $pageNationCount = 12; //ページスタート位置作成 $StartPageID = ($pageNationCount*($page-1));//1ページ目 0x12=0 2ページ目 1x12=12 ページ数-1なので $End__PageID = ($pageNationCount*($page));//1ページ目 1x12=12 2ページ目 2x12=24 //1ページ目 0~11(12件) 2ページ目 12~23(12件)(数値は配列番号) //終端数”未満”なので0起算~終端-1 for($i=$StartPageID;$i<$End__PageID;$i++){ //ページに相当する内容を表示 表示 $店舗50件[$i]["店舗名"].$店舗50件[$i]["URL"]; }またwp_queryの記述ですとoffset(開始点)を上記開始位置に合わせて12件取得するとページングになるのではないでしょうか。
フォーラム: 使い方全般
返信が含まれるトピック: ブルートフォースアタックのhtaccessについて教えてくださいご存知だとおもいますがブルートフォースアタックとはやたらめったらログインを仕掛けて
当たればラッキーという攻撃方法です。
ベーシック認証が回数試せるようであればベーシック認証にも攻撃が可能なわけで
回数制限でのアクセス制御とセキュリティ確保であればやはりプラグインで、とは思います。
承認を2段階にしているという意味ではワードプレスログインの安全性は幾許か向上すると思いますが
「ブルートフォースアタック」対策にはあまり効果的ではない気がします。
アクセス数が特定のファイルやフォルダに対してとても多い、無縁なIPについて
重ねて、ディナイかけるだけで十分で、それ以上はあまり効果が期待できないのではないか、と思います。#ベーシック認証 AuthType Basic AuthUserFile /**********/wp-admin/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" Require valid-user #ベーシック認証かIPアドレス制限のどちらかで制限 Satisfy Any #執行順序 こちらは一般的かと思います(排除してから、許可を記載) Order deny,allow #全排除 Deny from all #許可IP Allow from ***.***.***.*** #許可するIPアドレス #---------- ここまでで十分な気がします ---------- #IPまたはBasic認証を設定しているのでいらないのではと思うのですが/★追記 #ベーシック認証にいずれ承認されると通ってしまう/★追記 <FilesMatch "(admin-ajax.php)$"> Satisfy Any Order allow,deny Allow from all Deny from none </FilesMatch> #指定のページからログインフォームを稼働させていなければはじくという設定ですが/★追記 #そもそもログインページを上記2条件うち一つ(実質的にはベーシック認証)クリアしなければ表示しないので不要なのでは/★追記 #ログインページの表示がなされた時点でベーシック認証は突破されていますが/★追記 #ログインフォームの稼働前提条件としてはあっても無駄ではないと思います/★追記 #ただプラグインで回数制限がかかっていればブルートフォースにはすでに効力を発揮しているはずなので/★追記 #必要ではないかなと思います。/★追記 # Stop spam attack logins and comments #リダイレクタへの指定 <IfModule mod_rewrite.c> #転送式 開始 RewriteEngine On #POSTアクション受信の場合 RewriteCond %{REQUEST_METHOD} POST #コメント投稿とログインの場合 RewriteCond %{REQUEST_URI} .(wp-comments-post|wp-login)\.php* #送信元(直前のページ)がどこであるか RewriteCond %{HTTP_REFERER} !.*hoge.co.jp.* [OR] #ユーザーエージェント(送信ソフトウエアの固有情報:各ソフトにより任意) #なければ(ブラウザではない可能性、プログラムである可能性が大きいので) RewriteCond %{HTTP_USER_AGENT} ^$ #転送 RewriteRule (.*) http://%{REMOTE_ADDR}/$1 [R=301,L] </ifModule>フォーラム: 使い方全般
返信が含まれるトピック: 自分のHPを検索 意図しないページが出る!検索結果は検索エンジンの仕様によると思いますのでページ構成の評価などから選択されるものだと思います。
キーワードを多く含む、記事における注釈の設定などが要件を満たしている点数の高いものがトップページよりも記事のほうになっているのではないでしょうか。
トップページに当該キーワードをより多く含める設定やポータル的な仕様にして評価を逆転させるか、トップページ以外には canonical 属性をつけて
「記事の検索結果はトップページに還元されるべき」とGoogleに対し表現するのはいかがでしょうか。
マネジメントによると思いますがSEO対策についてのプラグインもwordpressには多くあると思いますのでご利用を検討されてみてはいかがでしょうか。フォーラム: 使い方全般
返信が含まれるトピック: ブルートフォースアタックのhtaccessについて教えてください#ベーシック認証 AuthType Basic #ベーシック認証パスワードファイル位置指定 AuthUserFile /************/wp-admin/.htpasswd #アクセス許可する権限ユニット 用途にあっていればよいのですが詳細指定が不明かと AuthGroupFile /dev/null #表示ボックスタイトル AuthName "Please enter your ID and password" #二つ上の許可ユニットからの対応宣言ですが バリデートされたユーザーなら(ログインが通ったら)だれでもログイン可能 Require valid-user #特定のファイルに対して <FilesMatch "(admin-ajax.php)$"> #ベーシック認証かIPアドレス制限のどちらかで制限 Satisfy Any #許可を優先しその後不可を執行 Order allow,deny #全員アクセス可能 Allow from all #不可 なし? Deny from none </FilesMatch> #スコープを対象ファイルから全体にもどして #ベーシック認証かIPアドレス制限のどちらかで制限 Satisfy Any #執行順序 こちらは一般的かと思います(排除してから、許可を記載) Order deny,allow #全排除 Deny from all #許可IP Allow from ***.***.***.**** #許可するIPアドレス #そしてまた上記と同じ内容 <FilesMatch "(admin-ajax.php)$"> Satisfy Any Order allow,deny Allow from all Deny from none </FilesMatch>上記のような条件だとおもうのですがいかがでしょうか。
またご提示いただきました内容については以下のようですがいかがでしょうか。# Stop spam attack logins and comments #リダイレクタへの指定 <IfModule mod_rewrite.c> #転送式 開始 RewriteEngine On #POSTアクション受信の場合 RewriteCond %{REQUEST_METHOD} POST #コメント投稿とログインの場合 RewriteCond %{REQUEST_URI} .(wp-comments-post|wp-login)\.php* #送信元(直前のページ)がどこであるか RewriteCond %{HTTP_REFERER} !.*example.com.* [OR] #ユーザーエージェント(送信ソフトウエアの固有情報:各ソフトにより任意) #なければ(ブラウザではない可能性、プログラムである可能性が大きいので) RewriteCond %{HTTP_USER_AGENT} ^$ #転送 RewriteRule (.*) http://%{REMOTE_ADDR}/$1 [R=301,L] </ifModule>書き方として、拒否ありき、全拒否からのアクセス許可が望ましいと思いますが
拒否先が特定で許可対象のほうが多いのならば、拒否する旨をなによりも先に書くのがよいと思うのですがいかがでしょうか。
オーダー・ディナイでまずディナイフロム拒否IPを指定して、アローオールで希望の動作に至りませんでしょうか。編集(追記):
あとすいません。IPひとつなら全拒否で許可1件のほうがいいですね。
それと、Wordpress案件なので、プラグインでセキュリティについて複数回ログイン施行で停止措置にするものなどの導入はいかがでしょうか。- この返信は9年、 5ヶ月前にmsioが編集しました。理由: 記載事項に抜けがありましたもので追記いたしました。
フォーラム: マルチサイト
返信が含まれるトピック: 親サイトにページャをつけるこちらの一覧表示という記事が一覧の作成について解決を促されるのではないでしょうか。
大変失礼ですが私の認識としてはページャというのはページングをする機能のことでページングとは複数ある内容について
1回の表示単位を区切ることで1.100項目あるものを、5項目1ページ単位で切り分けることを「ページング」 1~100項目→1ページ(1~5)、2ページ(6~10)
2.5項目の参照位置を移動したりさせたりすることを「ページ送り」 1ページから2ページに移動することの機能(1項目の次は6項目)
3.「ページ送り」をさせるものを「ページャ」 現在1ページを表示しているので2ページへのリンクを表示させるものこのページャを作成するにあたって、ページングする元データをどこから持ってくるかによってかわると思うのですが
表示個数が表示対象分母より小さくかつ同一画面で表示をすることについてのご質問だったでしょうか。上記にて紹介いたしましたリンク先はただ一覧を取得するに至るまでかと思いますのでページングが必要であれば
表示可能と判断した時点で変数に1ずつ追加して、規定値まで到達すると終了、$page 変数の受け取りなどで開始点と開始点+表示数の
ループを組む、などになるかと思いますが分母の取得方法によってページング方法の選択肢にご参考になればと思います。フォーラム: 使い方全般
返信が含まれるトピック: 管理画面で記事が下書きなのか公開済なのかを視覚的に分かり易く表示したい管理画面をオーバーライドするのはあまりよくないとは思いますが、そして手段としてはあまり正攻法だとはいいがたい案だとは思いますが、お使いのfunction.phpにPHP記述以外でCSSを書き足してみてはどうでしょうか。
<style> /*#←ID要素を指定*/ #post-status-display{ /*文字赤*/ color:red; /*文字大きさ・大*/ font-size:xx-large; } </style>公開非公開関係なく赤く大きくなると思いますが、こんな感じでどうでしょうか。
この要領でflowとかHTMLの記述で常に表示されるようになど加工できるかもしれません。
この方法では状況によって変化などはむつかしいと思います。
状態によって色変えをするのであればjavascriptでIDのinnerHTMLを取得して状況にあわせてスタイルシートを変えるなどの方法があるかと思いますが、あくまで「個人的に共有部の一部を変更したい」ニーズには、これ以上加工しないほうが無難かなと思います。フォーラム: 使い方全般
返信が含まれるトピック: 2つのループで記事が重複せずにランダムで記事を表示させたいquery_posts
メタ的な投稿データの編成につき煩雑で更新の優先度を下げたい関数 = 非推奨
・実行速度が遅い
・メモリを食う
・無駄なデータ連携がなされるwp_query
SQLクエリ構成に近く機能維持に優位性がある関数 = 推奨
・シンプルなのではないかと思うので早めに乗り換えたほうが良いかもしれないとは思うのですが、ランダム抽出の有効性はpostsのほうの特性な気もするので私には判断することができないのです。
post__not_in を使って望ましい抽出はできると思います。でもランダムとなるとランダムの母体範囲を指定しなくてはならないと思うのと両立方法が私にはわかっていません。2条件併記して重複ということは、タグを複数つけた状態のように「2視点からの抽出を併記したいが、近しい条件のため一部重複記事がある」場合の利用なのではないかと想像しております。
その場合は、PHPの範疇ではありますがランダマイズした抽出結果の抽出自体の採用条件をランダマイズするという階層構造にするのはどうでしょうか。条件1 条件2
A1 A1 —-重複 条件によっては除外対象
B2 B2 —-重複 条件によっては除外対象
C3 B3
D4 D1
E5 D2
F6 E1
G7 D2ア.条件1の重複していないランダム抽出
C3
D4
E5
F6
G7イ.条件2の重複していないランダム抽出
B3
D1
E1
D2ウ.重複しているランダム
A1
B2選択肢ランダム
A.ア.とイ.は相互に重複を含まない
B.ア.はウ.の1件を含みイ.は重複を含まない
C.ア.は重複を含まずイ.はウ.の1件を含むそれぞれの条件結果でランダム表示をしたい範囲を抽出し配列に代入
配列をshuffle
撹拌したデータの先頭をA.B.C.それぞれのランダムで選択された内容にそって取り出し掲載する。それぞれの全体の条件を確定しながら、確定したものを次の条件の分母から除去していけばいいと思います。
分母を三つも用意しなくても段階的な処理を1つのプロセス上に乗せるとみため分母変数は一つになるかと思いますが、
保持しておくデータが選別プロセスのたびに肥大化すると条件定義の要素が変数にも増えて結果メタ的な情報になってしまうかと思います。
(1つの条件を2度の選別にかけると2度比較データができるので結果5分母分+2条件を満たす演算回数が必要なのではないかと思って)候補選択のプロセスで抽出するデータはそれぞれの記事IDだけにしておいて、表示記事が決定するとget_postなどで表示するのはどうでしょうか。
あとoffsetは抽出結果の開始位置だと思うので以下の条件になっているのではないでしょうか。
showposts=2&orderby=rand&offset=2
表示2件 ランダムで 上から2件を = 記事条件に合致する中から起算位置を2とし2~終端のうちの上位2件を表示 = ランダムに並べ替えた記事の3~4を表示- この返信は9年、 5ヶ月前にmsioが編集しました。理由: 自分で出した条件に合致しない表記をしていました…。
フォーラム: 使い方全般
返信が含まれるトピック: .htaccessでindex.phpがリダイレクトできない特定のユーザーを識別するのはIPアドレスのみで判断をすることでよろしかったでしょうか。
Wordpressが用意するhtaccess内容につきましてはおなじみのものだと思います。
# BEGIN WordPress #機能要件分岐(なければ動作しないだけなのであってもなくても大丈夫) <IfModule mod_rewrite.c> #RewriteEngine 機能肯定 RewriteEngine On #RewriteEngine機能範囲条件(/xxx/という階層以下に有効) RewriteBase /xxx/ #なにもなければindex\.phpを挟んでいるということにする RewriteRule ^index\.php$ – [L] #ファイルが存在していない条件において RewriteCond %{REQUEST_FILENAME} !-f #フォルダが存在していない条件において RewriteCond %{REQUEST_FILENAME} !-d #index.phpに帰依する(前述条件(今回は2件)に合致する場合) RewriteRule . /xxx/index.php [L] #機能要件分岐 終了 </IfModule> # END WordPressこちらの後に記載されていた場合、動作として「Wordpress機能範囲内に対象がみつかった場合はindex.phpを経由する」にまず転送がかかってしまってユーザー分岐まで到達しないのではないでしょうか。
Wordpressの設定よりも上では動作しませんか?
固定ページというのはデータ的に階層が存在しているものではなくWordpressがデータで仮想的に階層をつくっているものなのでhtaccessが見る分には「フォルダxxxはデータとして存在しない」と見えて「存在しない条件の場合の転送」が有効になっていないでしょうか。フォーラム: テーマ
返信が含まれるトピック: archive.phpでカスタムメニューが表示されたりされなかったりする問題についてフォーラム: 使い方全般
返信が含まれるトピック: サブメニューが属するメニュー名を取得したい大変申し訳ございません。
私の力量不足のせいで、それはなんとするもかなわない事項です。誠に身勝手な申し出なのですが、経路の異なる到着点を同列に配置する方向で機能をつけるならば
ページ遷移を記録して元を表示するような機能のほうが理想的かと思います。
親ページでタイトルを取得し、その情報を子経路内では維持・表示するというほうがよいと思うのです。なぜならば、そのページを経路なしに読み出した場合と経路をたどって読み出す場合の可能性は
半々として、二個の経路があるとするなら、実質的に親子関係の意味をなさない状況が半分あるということに
ならないでしょうか。二つのメニューがあって、半分が機能しない状況が想定されるということは、一つでよいのではないでしょうか。
小説の分岐のように、経路によって同じ項目を踏む、経路が別という局面も想定されるかと思うのですが
小説も読み進める視点単位は1つで、2経路同時に進行はせず、二冊を同時によみすすめて同じページに至る
ことがないように、必要性についてすこし疑問に思うところがあります。データの形質についてばかり重視する話で辟易とされるかと思うのですが、ワードプレスは構造効率化が非常によいと思って
おりますので、お時間のある際にご参考いただけると幸いです。フォーラム: プラグイン
返信が含まれるトピック: Redirectionで301リダイレクト設定について私はレンタルサーバーの使用経験が浅く特徴など勉強不足なのですが
301転送といえばサーバーレベルかと思っていたのでサーバーにログインする
もしくはサーバーログインでの作業顕現にあたるものがプログラムで
動作可能な状態が前提かなと思うのですが、もしか管理をされている方が
ほかにいらっしゃるのであれば管理をされている方に依頼するのがよいかと思います。ちらっとみてみたのですが同一ドメイン内での転送をサービスしていない
という形をとられているのかもしれないので機能的なものかもしれないなどと思ってみました。https://www.xserver.ne.jp/manual/man_server_transfer.php
もしかワードプレスがデータベースにないページを参照しようとした段階で404に
なっているのだとしたら、安易な私としては古いアドレスにページを設置し
そのページの機能を<link rel=”canonical” href=”http://www.[ target domain ].com” />
とページに記載してこのページは http://www.[ target domain ].com ページを参照すべきという
ページをつくってふるいアクセスの評価を新しいところへ維持させたり
(ワードプレスのヘッダーテンプレートがいじれたら全頁それぞれのアドレス代替案を挿入できると思います)<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://www.[ target domain ].com”);
exit();
?>とPHPの機能を使ってジャンプさせたりもできるかもしれないと想像してしまいます。
これもヘッダーテンプレートで移動先に整形ができるかと思います。なにもかもよくわかってなくて申し訳ないですが、私としてはワードプレスの使い方を
1.どこにアクセスしようがまずindex.phpから処理し始める
2.存在しなければindex.phpに飛ぶ(逆に存在さえしていれば機能外の位置も機能する)
3.ディレクトリ単位で動作規制はhtaccess(サーバーにログインして設定するやつ)で行うというノリですこしかじっている程度なので、やはり管理をされている方がいればその方に
調整いただく、もしくは同じサーバーをご利用の方からの回答があることがよいかと思います。解決にいたらず申し訳ございませんが、よい結果に至りますようお祈り申し上げます。
フォーラム: 使い方全般
返信が含まれるトピック: サブメニューが属するメニュー名を取得したいなにもかも良い結果に至らず大変申し訳ございませんでした。
最後に呈しました構造の要件を満たすと思われる例を掲示いたします。
今回は作業のお邪魔ばかりしてしまいましたがいずれなにかのお力になれますよう努力いたします。<?php //抽出パラメータ $param = array( 'order' => 'DESC', 'post_status' => 'publish', 'nopaging' => true, 'update_post_term_cache' => false ); //親ノードストリーム取得 //customized_menu = 作成メニュー名サンプル $famtree = wp_get_nav_menu_items('customized_menu', $param ); //自ノード格納変数 配列型 //変数は宣言しておくのがセオリーですが //自ノード確定できなかったときに中断する要素にするため //宣言せず抽出されたときにフラグを兼ねるため宣言せず //$MyObject = array(); //抽出されたメニューデータを循環 foreach($famtree as $value_fam){ //自分のIDとメニューのIDが合致すれば確保 if($value_fam->object_id==get_the_ID()){ //自ノードの確定 $MyObject = array( "title" => $value_fam->title, "url" => $value_fam->url, "object_id" => $value_fam->object_id, "db_id" => $value_fam->db_id, "parent" => $value_fam->menu_item_parent, ); //自ノード確保循環終了 break; } } //自ノードが確保されていたら(メニューの要素だったとき) if($MyObject){ //親ノードを持たなくなるまで円環 do{ //懲りずにメニュー要素を循環 foreach($famtree as $value_fam){ //親ノードを発見したら if($value_fam->db_id==$MyObject["parent"]){ //親ノードを自ノードとして確定 自己吸収 $MyObject = array( "title" => $value_fam->title, "url" => $value_fam->url, "object_id" => $value_fam->object_id, "db_id" => $value_fam->db_id, "parent" => $value_fam->menu_item_parent, "child" => $MyObject, ); } } }while($MyObject["parent"]>0); //自称「自ノード」が完了するまでループ //自ノードを食ってのぼり配列の先頭が総本家です //総本家からchild要素がなくなるまで参照すると //末端までパンくずができます。 } //変数の状況をテスト出力 var_dump($MyObject); ?>