CyberCypher
フォーラムへの返信
-
タグを配列で全て取得して、取得した配列のサイズがそのまま件数ではないかなーっと
<?php $a = wp_tag_cloud('format=array' ); echo count($a); ?>
フォーラム: 使い方全般
返信が含まれるトピック: サーバの容量が1日でMAXになってしまうとりあえず変更は二箇所ほど
phpThumb.config.php
<?php //キャッシュ画像全体の上限容量 1Gbyte //1024(K)*1024(M)*1024(G) //上の貼り付けを見ると10Mbyteですので変更してもしなくてもどちらでも $PHPTHUMB_CONFIG['cache_maxsize'] = 1024 * 1024 * 1024; //サムネイルの最大サイズ $PHPTHUMB_CONFIG['output_maxwidth'] = 1000; $PHPTHUMB_CONFIG['output_maxheight'] = 1000; //外部からの不正なアクセス防止 $PHPTHUMB_CONFIG['nohotlink_enabled'] = true;
念の為htaccessをphpthumbフォルダに置く
<Files ~ "phpThumb.php"> SetEnvIf Referer "^http://ドメイン/" ref_ok order deny,allow deny from all allow from env=ref_ok </Files>
このプラグイン、日々修正されているようですが脆弱性があるので
自分である程度制限しちゃったほうが安全ではあります
アクセスログを確認してみて膨大なアクセスがあるのなら要注意ですね
(特に海外ドメインの奴らw)追記:
以下も知っておいたほうがいいかも//cacheを削除する時間(一日の秒数*日数)下では30日で削除 $PHPTHUMB_CONFIG['cache_maxage'] = 86400 * 30; //サムネイルが200以上作られていた場合アクセスが多いサムネイルから削除?とにかく順番に削除されていくらしい $PHPTHUMB_CONFIG['cache_maxfiles'] = 200;
フォーラム: 使い方全般
返信が含まれるトピック: body_classに最上位の親ページのスラッグを出力したいフィルターで置き換えてるところを見ると
body_class()で取得したのを置き換えてるっていうこと?
文字列の置換えのようになってしまっているせいで一部しか変更されないのだと思います
それならいっそのこと直接
ps_get_root_pageをbodyに書いてしまうのも有りかと・・・
フィルタされるタイミングが問題ですよねフォーラム: 使い方全般
返信が含まれるトピック: 外部ファイル化したヘッダーナビゲーションが機能しない今まで取得できてたから気にした事がなかった
情報サンクスです・・・と本題に戻りますが
後はマウスオーバーとアウトの関数内の解析だけですかね
サーバー変数は(自分の環境では)問題なく取得出来たので
追記:
これなら問題が無さそうなのですが・・・検証してないので分からないです
後は変更を終えた後、ページのソースを見て出力されているTAGが正しいか、
画像が正しい階層に置いているか再度確認してみて下さい<script language="JavaScript" type="text/JavaScript"> <!-- function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } //--> </script> <ul> <?php /************************************* 可変するものだけ再代入していく。以下予想解析結果 <li><a><img > </img></a></li>; <img src="off画像URL" alt="" name="" :IDと同一 id="" :Nameと同一 width="" height="" border="" onMouseOver="MM_swapImage('','','',1)" onMouseOut="MM_swapImgRestore()" /> onMouseOver時(画像変更用) MM_swapImage( 'IDorName',:画像変更の指定の為 '', 'on画像URL', 1 )" onMouseOut(画像を元に戻す用) MM_swapImgRestore() *************************************/ $nowF[] = array("", "product/", "corpinfo/" ); //現在の選択階層 $nm[] = array( "gbnv01", "gbnv02", "gbnv03" ); //name&ID $wd[] = array( 110, 150, 150 ); //width $alt[] = array( "ホーム", "NEiWorks", "corpinfo" ); //画像キャプション for($i=0;$i<count($nowF);$i++){ if($nm[$i]==null || $wd[$i]==null || $alt[$i]==null){break;} //<li>&<a>:タグ宣言 $startTag = "<li><a href=\"". get_bloginfo('url')."/".$nowF[$i]."\">"; $imageTag = "<img src=\"".get_bloginfo('url')."/wp-content/themes/mytmpl/img/cmn/".$nm[$i]; $closeTag = "\" alt=\"".$alt[i]."\"". " name=\"".$nm[$i]."\"". " id=\"".$nm[$i]."\"". " width=\"".$wd[$i]."\"". " height=\"48\"". " border=\"0\"". " id=\".$nm[$i].\"". " onmouseOver=\"MM_swapImage(\'".$nm[$i]."\',\'\',\'".get_bloginfo('url')."/wp-content/themes/mytmpl/img/cmn/".$nm[$i]."on.gif\',1)". " onmouseOut=\"MM_swapImgRestore()\" /></a></li>"; if($nowF[i] == ""){ $arrayTag[] = array('/index.php', $startTag.imageTag.".gif".closeTag, $startTag.imageTag.".ongif".closeTag); }else{ $arrayTag[] = array($nowF[$i], $startTag.imageTag.".gif".closeTag, $startTag.imageTag.".ongif".closeTag); } } foreach($arrayTag as $singleArray){ if(strpos($_SERVER['PHP_SELF'], $singleArray[0]) === false){ echo $singleArray[1]; }else{ echo $singleArray[2]; } } ?> </ul>
フォーラム: 使い方全般
返信が含まれるトピック: 外部ファイル化したヘッダーナビゲーションが機能しない<li><a href="<?php bloginfo('url'); ?>/"> <img src="<?php bloginfo('url'); ?>/wp-content/themes/mytmpl/img/cmn/gbnv01.gif" alt="ホーム" name="gbnv01" width="110" height="48" border="0" id="gbnv01" onMouseOver="MM_swapImage('gbnv01','','<?php bloginfo('url'); ?>/wp-content/themes/mytmpl/img/cmn/gbnv01on.gif',1)" onMouseOut="MM_swapImgRestore()" /> </a> </li> <li><a href="<?php bloginfo('url'); ?>/"> <img src="<?php bloginfo('url'); ?>/wp-content/themes/mytmpl/img/cmn/gbnv01on.gif" alt="ホーム" name="gbnv01" width="110" height="48" border="0" id="gbnv01" onMouseOver="MM_swapImage('gbnv01','','<?php bloginfo('url'); ?>/wp-content/themes/mytmpl/img/cmn/gbnv01on.gif',1)" onMouseOut="MM_swapImgRestore()" /> </a> </li>
TAGの中がごちゃごちゃしてたので見やすいように改行してみました
今さらながら気づいたのですが・・・
「MM_swapImage」や「MM_swapImgRestore()」ってどうなってますか?フォーラム: 使い方全般
返信が含まれるトピック: 外部ファイル化したヘッダーナビゲーションが機能しないぁぅごめんなさい、全然気付かなかったスペルミス恥ずかしい
フォローありがとうですgatespaceさんフォーラム: 使い方全般
返信が含まれるトピック: メディア(画像)を投稿に挿入する画面で…こんにちは
サイズの設定が住んでいるなら保存したURLを直接打ち込んでみては?
「アップロード/挿入」のメディアを選択する所にURLからがあると思います・・・選択ラジオボタン自体を増やすならこちらにAdditional image sizesと言うプラグインが紹介されているので参考になされてみては?
フォーラム: 使い方全般
返信が含まれるトピック: 外部ファイル化したヘッダーナビゲーションが機能しないwordpressのテーマ配下にいるなら大丈夫だとは思うのですが
テーマ配下外の階層にいると上手く認識しないのだと思います
ループの中だから使えない・・・というわけではないので確認のために上のコードは一旦バックアップしてでも置いといて
全部削除しちゃっても良いんで一つずつ確認しましょう
<?php echo broginfo(‘template_directory’); ?>
でテンプレートの階層が取得できるか
出来るなら問題は別の所にあると思われるし
出来ないのなら階層がおかしいのだと思われる
まずは命令が上手く仕えているかどうか1行ずつデバッグですかね
一応余裕があれば自分も検証してみますが・・・フォーラム: 使い方全般
返信が含まれるトピック: サーバの容量が1日でMAXになってしまう遅くなりました
サムネイルの生成はプラグインを使用していますか?
(php_Thumb、QF-GetThumb等)
もしphpThumb()を使用しているなら危険かもしれないです
使用していると仮定して話を進めると
リサイズの制限をかけないと
URLからソースを認識してリサイズしサムネイルを生成するからです
おそらくそれだけではなく同じURLだとしても
生成する前に既にあるか確認していないため
同じファイルが複数できてしまうものかと・・・
メディアをアップロードする際にサイズ指定出来るのでそちらを使用するか
プラグインの生成の情報を書きかえるか
別のプラグインへ移行するかと思いますねフォーラム: 使い方全般
返信が含まれるトピック: サーバの容量が1日でMAXになってしまうサムネイルのキャッシュがすごいことになってますね
出かけ先なので詳しく返答出来ませんが
カスタムテーマのサムネイルを自動生成する命令をループか何かに放っていませんか?フォーラム: 使い方全般
返信が含まれるトピック: トップの記事の表示期間を自動指定したいAND wpostmeta.meta_value > '".date('Ymd')."'
この一行を
AND wpostmeta.meta_value >= '".date('Ymd')."'
にすればいいと思います
(dateで日付の書式を変えて比較しているのですが
現在のものでは現在の時間超過の場合
変更後は現在の時間以上の場合
未満や以下、以上や超過と言った比較ですね)
ついでに説明すると//データベースへアクセスするためのクエリ文を生成し$querystrへ格納
$querystr = "クエリ文"
//選択カラム(列)取得したい必要な情報、postsに含まれる情報を全て選択
SELECT wposts.*
//FROM テーブル名(二つ選ばれてますがDBを覗けばわかると思います
//恐らく接頭辞は”w”、postsとpostmeta、両方とも投稿情報についてです)FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
//ここからは条件式、上のものは最悪”おまじない”で
//二つのテーブルの情報が同じ列を取得WHERE wposts.ID = wpostmeta.post_id
//取得した投稿情報の種類が”live”なら・・・”page”や”image”と言った画像やページも取得できます
AND wposts.post_type = 'live'
//カスタムフィールドの値
AND wpostmeta.meta_key = 'rrd_custom_live_thisday'
//肝心なのがココ、メタ情報に恐らく日時を入れてると思います
AND wpostmeta.meta_value > '".date('Ymd')."'
//ステータス情報”publish”は公開中、公開しているものだけを抽出
AND wposts.post_status = 'publish'
//ソートについて、日時を降順で表示(だったはず)
ORDER BY wpostmeta.meta_value ASC
//一度に表示する件数ですね、5件まで取得です
LIMIT 5
ここまでがクエリ文生成
//クエリを実行してDBからの値を取得します、そしてpagepostsに結果を代入
$pageposts = $wpdb->get_results($querystr, OBJECT);
//結果が取れなかった場合falseとなるので結果があればifの中へ入ります
if ($pageposts){
//取れた件数分ループします(配列 as 一時変数)
foreach ($pageposts as $post){
//以下表示処理が延々と続く
分かりづらいかもしれませんが多分こんな感じだと思います
フォーラム: 使い方全般
返信が含まれるトピック: 勝手に別ウィンドウで開いてしまう。環境が全く分からないので回答が付けづらいのですが
・リダイレクトの命令が記述されている
・プラグインが機能している
・DBにあるURLとwordpressの存在しているURLが違う
・ブラウザで新規ウインドウで開く設定にしている
・キーボードのCTRLキーがぶっ壊れてる思いつく限りこんなもんなのかなぁ?
公開されているサイトでしたら教えていただけると助かります
環境を分かる限りでも書くと回答者が答えやすくなると思いますフォーラム: 使い方全般
返信が含まれるトピック: 複数のタグを一括で登録したい新規タグを追加からじゃなくても
新規ページを適当に作って
「Tag1,Tag2,Tag3,Tag4,Tag5」で適当にタグ登録して
新規で作ったページを削除すればタグだけ残らない?スラッグとかも詳しく登録したいってことかな?
認識に違いがあったらごめんよフォーラム: 使い方全般
返信が含まれるトピック: body_classに最上位の親ページのスラッグを出力したいこんにちは
post_parentの値は覗いてみました?
デバッグ用に値を覗いてみてはどうでしょう?後はps_get_root_page呼び出しは問題ないとして
帰ってきてからの処理で扱けているとかはありませんか?帰ってきてからで思いつきましたが戻ってきてから値を編集するのもありかと
(スマートではないやり方とは思いますが)フォーラム: 使い方全般
返信が含まれるトピック: 外部ファイル化したヘッダーナビゲーションが機能しない未定義とか言われてるし、もしかしたら配列がヌルかもしれない・・・
for($x=0;$x<count($arrayTag);$x++){ if(!(is_null($arrayTag[$x][0])) && $arrayTag[$x][0] != ""){ if(strpos(broginfo('url'), $arrayTag[$x][0]) === false){ echo $arrayTag[$x][1]; }else{ echo $arrayTag[$x][2]; } }else{ echo $arrayTag[$x][2]; } }
手抜きがイけなかったのか後ほど検証してみたいと思うけれど・・・
先に恐らくであろうコードをとりあえず、Broginfoが取得できてるかも気になりますが・・・