<?php foreach((array)$others as $other){?>
これだけでいけた
foreachというのは配列の数だけ繰り返すということですので $list[$key]; が1つの時には配列で返ってこないからエラーが出るということだと思います。 配列かどうかの判断はis_array()で判定させます。
<?php foreach((array)$others as $other){?>
これだけでいけた
foreachというのは配列の数だけ繰り返すということですので $list[$key]; が1つの時には配列で返ってこないからエラーが出るということだと思います。 配列かどうかの判断はis_array()で判定させます。
cssにinput[type=’email’]も追加
input[type='text'], textarea, .wpcf7-select,input[type='email']
ファンクションに
// Contact Form 7 に確認用メールアドレス入力欄を実装する
add_filter( ‘wpcf7_validate_email’, ‘wpcf7_text_validation_filter_extend’, 11, 2 );
add_filter( ‘wpcf7_validate_email*’, ‘wpcf7_text_validation_filter_extend’, 11, 2 );
function wpcf7_text_validation_filter_extend( $result, $tag ) {
$type = $tag[‘type’];
$name = $tag[‘name’];
$_POST[$name] = trim( strtr( (string) $_POST[$name], “\n”, ” ” ) );
if ( ‘email’ == $type || ‘email*’ == $type ) {
if (preg_match(‘/(.*)_confirm$/’, $name, $matches)){
$target_name = $matches[1];
if ($_POST[$name] != $_POST[$target_name]) {
$result[‘valid’] = false;
$result[‘reason’][$name] = ‘確認用のメールアドレスが一致していません’;
}
}
}
return $result;
}
コンタクトに
<tr><th>※メールアドレス確認</th> <td> [email* your-email_confirm]</td> </tr>
function my_form_tag_filter($tag){ if ( ! is_array( $tag ) ) return $tag; if(isset($_GET['carname_title'])){ $name = $tag['name']; if($name == 'carname_title') $tag['values'] = (array) $_GET['carname_title']; } return $tag; } add_filter('wpcf7_form_tag', 'my_form_tag_filter', 11);
carname_titleを変える。
コンタクトに作成
<a href='/?page_id=9&carname_title=<?php the_title(); ?>'>
二つの場合
//Contact form 7 のフォームに自動的に記事タイトルを入れる方法 function my_form_tag_filter($tag){ if ( ! is_array( $tag ) ) return $tag; if(isset($_GET['carname_title'])){ $name = $tag['name']; if($name == 'carname_title') $tag['values'] = (array) $_GET['carname_title']; } if(isset($_GET['car_url'])){ $name = $tag['name']; if($name == 'car_url') $tag['values'] = (array) $_GET['car_url']; } return $tag; } add_filter('wpcf7_form_tag', 'my_form_tag_filter', 11);
-webkit-transform: rotate(-3deg) skew(-3deg); -moz-transform: rotate(-3deg) skew(-3deg); -o-transform: rotate(-3deg) skew(-3deg); -ms-transform: rotate(-3deg) skew(-3deg); transform: rotate(-3deg) skew(-3deg);
その他
http://squeeze.jp/blog/web-design/heading-design-border-css/
この場合
cssで
縦横指定
100%
autoでは
親の高さが指定しないと
レスポンシブされない。
そのための対応策として
無地もしくは透明な画像を
アブソルートの下にダミーで敷く
とし 画像はギャラリーの枠のDIVと同じ比率に 透明もしくは白だが
そして
.d-garabox{ width: 100%;height: auto; }
とすればよい
参考 http://ateitexe.com/wordpress-archive-sort-popular/
まずパーマーリンクを
投稿名にしなければならん
ポストタイプアーカイブ
http://www.d-format1.com/car/
のようにケツにスラッシュで終わらなかん
—
固定ページでは
is_main_くえり がポストタイプを指定できなかったな〜
カスタムポストでなく ポストならできるかも
—
URLに
?sort=newerのように
?自分できめた文字=自分で決めた文字
というURLをつけるように
ボタンをつくる。
簡単にコードをまとめたやつを書こう
<?php if ( is_archive() || is_search() ) { //アーカイブか検索ページだったら global $wp_query; $total_results = $wp_query->found_posts; //件数を取得しておく //※ソールドアウトの設定確認 } ?> </div></h2> <?php //※1 2ページ目以降でボタンを押されても、1ページ目に飛ぶようにURLを指定 $url = explode('/', $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]); $url_str ='http://'.$url[0].'/'.$url[1].'/'; $sortset = (string)filter_input(INPUT_GET, 'sort'); //信頼できないのでチェック ?> <div class="change_bottan_arc"> 取り扱い車両:<?php echo $total_results; ?>件<br /> 並び替え: <form method="get" action="<?php echo $url_str //※1?>"> <input type="hidden" name="sort" value="newer"/> <input type="submit" value="新着順" /> </form> </form> <!--| <form method="get" action="<?php echo $url_str //※1?>"> <input type="hidden" name="sort" value="older"/> <input type="submit" value="古い" /> </form>--> | <form method="get" action="<?php echo $url_str //※1?>"> <input type="hidden" name="sort" value="car_price_low"/> <input type="submit" value="価格が安い" /> </form> | <form method="get" action="<?php echo $url_str //※1?>"> <input type="hidden" name="sort" value="car_price_high"/> <input type="submit" value="価格が高い" /> </form> | <form method="get" action="<?php echo $url_str //※1?>"> <input type="hidden" name="sort" value="car_km_low"/> <input type="submit" value="走行距離が短い" /> </form> | <form method="get" action="<?php echo $url_str //※1?>"> <input type="hidden" name="sort" value="car_year_new"/> <input type="submit" value="年式が新しい" /> </form> | <form method="get" action="<?php echo $url_str //※1?>"> <input type="hidden" name="sort" value="car_cc_big"/> <input type="submit" value="排気量大" /> </form> | <form method="get" action="<?php echo $url_str //※1?>"> <input type="hidden" name="sort" value="car_cc_small"/> <input type="submit" value="排気量小" /> </form> </div>
<input type="hidden" name="sort" value="newer"/> <input type="submit" value="新着順" />
この部分が基本
あとは
ファンクションに
イズメインクエリを指定してやる
//こっから本番 function SortArchive( $query ) { //管理画面スルー if ( is_admin() || ! $query->is_main_query() ) return; //こっから if ( $query->is_category() || $query->is_archive() ) { $sortset = (string)filter_input(INPUT_GET, 'sort'); //if ( $sortset != 'older' && $sortset != 'car_price_high' && $sortset != 'car_price_low' ) { if ( $sortset == 'new' ) { $query->set( 'orderby', 'date' ); //新しい デフォ } elseif ( $sortset == 'older' ) { //記事古い $query->set( 'orderby', 'date' ); $query->set( 'order', 'ASC' ); } elseif ( $sortset == 'car_price_high' ) { //価格高い $query->set( 'meta_key', 'car_price' ); $query->set( 'orderby', 'meta_value_num' ); } elseif ( $sortset == 'car_price_low' ) { //安い $query->set( 'meta_key', 'car_price' ); $query->set( 'orderby', 'meta_value_num' ); $query->set( 'order', 'ASC' ); } elseif ( $sortset == 'car_km_low' ) { //走行距離が短い $query->set( 'meta_key', 'car_km' ); $query->set( 'orderby', 'meta_value_num' ); $query->set( 'order', 'ASC' ); } elseif ( $sortset == 'car_year_new' ) { //年式が新しい $query->set( 'meta_key', 'car_year' ); $query->set( 'orderby', 'meta_value_num' ); $query->set( 'order', 'DESC' ); } elseif ( $sortset == 'car_cc_big' ) { //排気量大 $query->set( 'meta_key', 'car_cc' ); $query->set( 'orderby', 'meta_value_num' ); $query->set( 'order', 'DESC' ); } elseif ( $sortset == 'car_cc_small' ) { //排気量小 $query->set( 'meta_key', 'car_cc' ); $query->set( 'orderby', 'meta_value_num' ); $query->set( 'order', 'ASC' ); } return; } } add_action( 'pre_get_posts', 'SortArchive' );
こうだ!
空のカスタムフィールどの場合の表示は無視してそのままでるからそこは
制御してない
あとは
カレントを設定するコードを書いたらOKか?
こうした↓
デフォのアーカイブも新着がかれんとされるようにね
<?php //※1 2ページ目以降でボタンを押されても、1ページ目に飛ぶようにURLを指定 $url = explode('/', $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]); $url_str ='http://'.$url[0].'/'.$url[1].'/'; $sortset = (string)filter_input(INPUT_GET, 'sort'); //信頼できないのでチェック ?> <div class="change_bottan_arc"> 取り扱い車両:<?php echo $total_results; ?>件<br /> 並び替え: <form method="get" action="<?php echo $url_str //※1?>"> <input type="hidden" name="sort" value="newer"/> <?php if ( $sortset == 'newer' || $sortset == '' ): ?> <input type="submit" class="sort_current" value="新着順" /> <?php else: ?> <input type="submit" value="新着順" /> <?php endif; ?> </form> </form> <!--| <form method="get" action="<?php echo $url_str //※1?>"> <input type="hidden" name="sort" value="older"/> <input type="submit" value="古い" /> </form>--> | <form method="get" action="<?php echo $url_str //※1?>"> <input type="hidden" name="sort" value="car_price_low"/> <?php if ( $sortset == 'car_price_low' ): ?> <input type="submit" value="価格が安い" class="sort_current" /> <?php else: ?> <input type="submit" value="価格が安い" /> <?php endif; ?> </form> | <form method="get" action="<?php echo $url_str //※1?>"> <input type="hidden" name="sort" value="car_price_high"/> <?php if ( $sortset == 'car_price_high' ): ?> <input type="submit" value="価格が高い" class="sort_current" /> <?php else: ?> <input type="submit" value="価格が高い" /> <?php endif; ?> </form> | <form method="get" action="<?php echo $url_str //※1?>"> <input type="hidden" name="sort" value="car_km_low"/> <?php if ( $sortset == 'car_km_low' ): ?> <input type="submit" value="走行距離が短い" class="sort_current" /> <?php else: ?> <input type="submit" value="走行距離が短い" /> <?php endif; ?> </form> | <form method="get" action="<?php echo $url_str //※1?>"> <input type="hidden" name="sort" value="car_year_new"/> <?php if ( $sortset == 'car_year_new' ): ?> <input type="submit" value="年式が新しい" class="sort_current" /> <?php else: ?> <input type="submit" value="年式が新しい" /> <?php endif; ?> </form> | <form method="get" action="<?php echo $url_str //※1?>"> <input type="hidden" name="sort" value="car_cc_big"/> <?php if ( $sortset == 'car_cc_big' ): ?> <input type="submit" value="排気量大" class="sort_current" /> <?php else: ?> <input type="submit" value="排気量大" /> <?php endif; ?> </form> | <form method="get" action="<?php echo $url_str //※1?>"> <input type="hidden" name="sort" value="car_cc_small"/> <?php if ( $sortset == 'car_cc_small' ): ?> <input type="submit" value="排気量小" class="sort_current" /> <?php else: ?> <input type="submit" value="排気量小" /> <?php endif; ?> </form>
cssも書いとく
/*-----------------------並べ替えボタン*/ .change_bottan_arc{ margin-top:20px; margin-bottom:10px;font-size: 80%;} .change_bottan_arc form{display: inline!important;} .change_bottan_arc input[type='submit']{ color: #aa9a85; padding: 0; margin: 0; box-shadow: none!important; background: none!important; border: none!important; font-size: 100%; text-decoration: underline; cursor: pointer; } .change_bottan_arc .sort_current{ font-weight: normal!important; text-decoration: none!important; color:#e60012!important}
[Keep Position] ページのスクロール位置を維持したままフォーム送信やページ切り替えができる jQuery プラグイン
これの中のいるのは多分
Keep Positionだけだけどセットのやついれた。
うまくいかなかったが
なぜかできた。
完成時
アーカイブ並び替えの
フォームボタンへアサインさせる感じ
干渉かと思いきやそうでなかったっぽい
アーカイブページの
WPフッター前に
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.3.1/jquery.cookie.min.js"></script> <script src="/js/jquery.utility-kit.js"></script> <script type="text/javascript"> // form 要素に対し適用 $('form').keepPosition(); // a 要素に対し適用 //$('a').keepPosition(); // 現在の URL でリロード //$.keepPosition.reload(); </script>
としたらできたよ。
タックスクエリ
メタクエリ
に続き
発見しましたよ
date_query
クエリポストや
イズメインクエリなどで
重宝しそう
今回の目的は
ソールドアウトと更新した記事は
30日間はループに表示させるが
30日以降は表示させない
という設定で仕様予定
date_query
//投稿日が一年以上前で、一ヶ月以内に更新された記事を取得 $args = array( 'date_query' => array( array( 'column' => 'post_date_gmt', 'before' => '1 year ago', ), array( 'column' => 'post_modified_gmt', 'after' => '1 month ago', ), ), 'posts_per_page' => -1, ); $query = new WP_Query( $args );
省略時は投稿日時(’post_date’)となっている。’column’には’post_date’、’post_date_gmt’、’post_modified’、’post_modified_gmt’、’comment_date’、’comment_date_gmt’が指定できる。
$query = new WP_Query( array( ‘date_query’=>array( array( ‘inclusive’=>ture, ‘after’=>date(‘Y/m/d’, strtotime(‘-14 days’))) ) ) );
http://www.mspace.info/wordpress-4-251.html
くわしくは
http://codex.wordpress.org/Class_Reference/WP_Query
参考
http://elearn.jp/wpman/column/c20131030_01.html
以下
コードの参照になればとコピペ
//サイトを閲覧している日時に更新されたpostを取得 $today = getdate(); $args = array( 'date_query' => array( array( 'year' => $today["year"], 'month' => $today["mon"], 'day' => $today["mday"], ), ), ); $query = new WP_Query( $args ); //今週の記事を取得 $week = date('W'); $year = date('Y'); $query = new WP_Query( 'year=' . $year . '&w=' . $week ); //今週の記事を取得 $args = array( 'date_query' => array( array( 'year' => date('Y'), 'week' => date('W'), ), ), ); $query = new WP_Query( $args ); 日〜土が1〜7に割り当てられています。 日 = 1 月 = 2 火 = 3 水 = 4 木 = 5 金 = 6 土 = 7 //平日(月〜金)9時〜17時に投稿された記事を取得 $args = array( 'date_query' => array( array( 'hour' => 9, 'compare' => '>=', ), array( 'hour' => 17, 'compare' => '<=', ), array( 'dayofweek' => array( 2, 6 ), 'compare' => 'BETWEEN', ), ), 'posts_per_page' => -1, ); $query = new WP_Query( $args ); ソースを見ているとcompareには下記の値が使えそうです。BETWEEN、NOT BETWEENあたりは特に便利そうですね。 '=', '!=', '>', '>=', '<', '<=', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN' 続いてもう一つ。afterのように英語表記で年月日指定もできますが、beforeのような指定のほうがわかりやすいと思います。 inclusiveはafter, beforeのみに適用されるtrue/falseの値を取るパラメータで、trueであればafterやbefore自体のマッチした投稿を含む、falseであれば含まない、というパラメータになっています。 //2013/1/1〜2013/2/28に投稿された記事を取得 $args = array( 'date_query' => array( array( 'after' => 'January 1st, 2013', 'before' => array( 'year' => 2013, 'month' => 2, 'day' => 28, ), 'inclusive' => true, ), ), 'posts_per_page' => -1, ); $query = new WP_Query( $args );
http://makeityourself.org/howto/date_query/
ドリームウィーバーでサイト
フォルダ全体指定
img src=”img/
を
img src=”/img/
に置き換え
d_h_css_js.php の
アドバンスカスタムフィールドにてタクソノミーをカスタムフィールドに入れて選んでもらえる事ができた。
それだけでもUI?的には大きな進歩であるが
今回やりたかったのは
条件判定にてカスタムフィールドを追加する
メーカーを選択 車種を選択
のメーカーをカスタムフィールドではリストカテゴリで一覧できないために
タクソノミーにしたかった。
だが現在アドバンスカスタムフィールドはタクソノミーの条件判定はできない。
結局プログラムを改造出来る程度で
プログラマではないため
プログラマの恩恵をうけているプログラムカスタマーといったところか。
自分でプログラムを書けるまでいくとすごいだろうな。。
さて
そのため 今回 車種名はあきらめて
テキストフィールドにする。
どうせ車種ではリスト表示しない予定のため
(専門店などではそもそも別のタクソノミーを用意するだろう)
ただおしかったので
どこができなかったかを
書き留めよう。
管理画面にて
タクソノミー(フィールド car_maker)とカスタムフィールド(フィールド car_maker)
同じにし
タクソノミーをカテゴリ作成し
アドバンスカスタムフィールドでセレクトボックスを作成
その際、
【タクソノミーのセレクトを カスタムフィールドのセレクトに連動】
できれば車種名フィールドは変更表示される事ができるだろう。
ここがにた様なコードをかいている人がいたが
難しかったことと
時間的に断念。
http://yahss.net/wordpress/1302-synchronize-tax-with-customfield/
なんとなくわかるが
これを自前に改造したら1日はかかるかできないかも
その他、同じセレクトボックスの連動で
http://okwave.jp/qa/q5903448.html
このような記事があったが
同じく断念
また時間と余裕があるときにでも
メモとして
タームIDが 33のとき セレクトボックスを 33:ターム名
の様にすればどちらも連動するようだ。
この場合 タクソノミーの方が優位なので(仕様)
タクソノミー 更新 とやれば メーカーも変わり 車種名がでる
今回やりたかった事ができるが
ユーザービリティ的に却下。
http://www.nxworld.net/wordpress/wp-favorite-posts.html
お気に入り登録機能を実装できるプラグイン「WP Favorite Posts」
http://blog.sus-happy.net/201105/customfield-search/
meta_key と meta_value
meta_compare
「meta_compare」に、「=」(デフォルト)、「!=」、「>」、「>=」、「<」、「<」の指定をして異なる検索結果を得ることが出来ます。 meta_query 以下のように記述することで、「hoge」に「fuga」という文字列を含み、「foo」(配列)の値が「bar」を持たない記事を検索できます。 条件式の「compare」も追加されており、「LIKE」、「NOT LIKE」、「IN」、「NOT IN」、「BETWEEN」、「NOT BETWEEN」という曖昧な検索を行えるようになりました。 [php] query_posts( array( "meta_query" => array( array( "key" => "hoge", "value" => "fuga", "compare" => "LIKE" ), array( "key" => "foo", "value" => "bar", "compare" => "NOT IN" ) ) ) );[/php] 複数ソート むりくる http://www.seeds-std.co.jp/seedsblog/876.html http://globalit-academy.com/programming/wordpress%E3%81%A7%E8%A4%87%E6%95%B0%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%82%92%E5%AF%BE%E8%B1%A1%E3%81%AB%E3%82%BD%E3%83%BC%E3%83%88%E3%81%99/
http://blog.pianoman-net.com/?p=5580
http://mekemoke.jp/2013/03/1065.html // ループ外でOK $fields = get_field_object('field_1'); $choices = $fields['choices']; if (have_posts()) : while (have_posts()) : the_post(); echo '<img src="./images/'. get_field('dessert') .'.gif" alt="'. $choices[get_field('dessert')] .'" />'; endwhile; endif; wp_reset_query();
<?php $fields = get_field_object('field_543e0d221abb2'); $choices = $fields['choices']; echo $choices[get_field('car_year')] ?>
http://blog.cgfm.jp/garyu/archives/3005
チェックボックスで複数選択した値を出力する
69行目
overSrc = $("img", this).attr("src").replace(/^(.+)(\.[a-z]+)$/, "$1_on$2"); を overSrc = $("img", this).attr("src").replace(/^(.+)(\.[a-z]+)$/, "img/galery/on.png");
キャラリー のサムネイル の方のオーバー部分
Better Delete Revision
ただしローカルで使ったら なかなか完了しなくて
無理クリページ移管などしたせいか
MAMPがおかしくなったから
データベースバックアップしてから
慎重にやること
そのまえに
確かに少し他のプラグイン
具体的には WP 何チャラサーチが
新しい記事をつくれなくなってダッシュボードに移動してしまっていたし
今は普通にできるから
これだけが原因だったとは考え肉い。
まずMAMPをインスト
過去のやつは日付がつく
この過去のやつで重要なのが
/Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
これにドメインの設定
/Applications/MAMP/conf/apache/httpd.conf
これにローカルの設定
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs"
/Applications/MAMP/bin/php
のやつがバージョン いらないの出して保存
db/mysqlがシンボリックリンク
ローカルが80
mysqlが3306
webサーバーはよくわからんが
drop共有か 過去のWINとの共有のためか
/Applications/XAMPP/xamppfiles
そんなとこかな
データベースのテーブルが見えない状態になったが
翌日マンオウジて
本サーバーからDLして
全部いれかえようしたら
普通にみれてた
1つだけdropboxの競合ファイルがあったやつは
けしたらなおった。
??????
昔使った 繰り返せば増えるコードを使用
wp-custom-fields-search-form.php
<?php if($title && !(@$params['noTitle'])){ echo $params['before_title'].$title.$params['after_title']; }?> <form method='get' class='<?php echo $formCssClass?>' action='<?php echo $formAction?>'> <?php echo $hidden ?> <div class='searchform-params'> <?php $i = 1; // 追加?> <?php foreach($inputs as $input){?> <div class='<?php echo $input->getCSSClass()?> car_search<?php echo $i++; // 追加?>'><?php echo $input->getInput()?></div> <?php }?> </div> <div class='searchform-controls'> <input type='submit' name='search' value='<?php _e('Search','wp-custom-fields-search')?>'/> </div> <?php if(array_key_exists('showlink',$config) && $config['showlink']) { ?> <div class='searchform-spoiler'><?php echo $spoiler_link; ?></div> <?php } ?> </form>
おきかえはよくあるので
調べたので忘れない様に解説します。
function my_footer() { } add_action('admin_footer', 'my_footer'); で管理画面フッターに入れます。 echo '<script type="text/javascript"> </script>'; でスプリクトを差し込みます。 //<![CDATA[ //]]> はCDATA セクションというらしく ここにの文字は純粋な文字として処理されるそう。 http://wisdom.sakura.ne.jp/web/xml/xml/xml7.html参考 そして jQuery(function(){ }); JQueryの実行? ポイント ---------------------------------------------------------- $(A).prepend(B) はA要素の最後にB要素が追加される 要素の中身を他の要素の先頭に挿入する。 ■具体的に最後に挿入したい場合一度とりだしてまた入れると最後に入れられる (これは、全ての要素に対して appendChild を行うことに近く、 操作後はDOMに要素が追加された状態になる。らしい。 (多分たくさんあれば全部にいれるってこと?)) $(A).prependTo(B) ではB要素にA要素が挿入される。 $(A).append(B) A要素の最初にB要素が追加される $(A).appendTo(B) B要素の最初にA要素が追加される ---------------------------------------------------------- jQuery("#normal-sortables").prepend( jQuery("#acf_497") ); でエディターの次のDIV#normal-sortables の先頭にアドバンスカスタムのBOXを
// カテゴリ->カスタムフィールド->公開 に毎回並び替える function my_footer() { echo '<script type="text/javascript"> //<![CDATA[ jQuery(function(){ jQuery("#normal-sortables").prepend( jQuery("#acf_497") ); こいつらはつかわせんけど記録用 jQuery("#normal-sortables").prepend( jQuery("#side-sortables").children("#tagsdiv-car_name") ); jQuery("#tagsdiv-car_name").prependTo(jQuery("#normal-sortables")); jQuery("#normal-sortables").append(jQuery("#side-sortables").children("#submitdiv")); jQuery("#submitdiv").appendTo(jQuery("#normal-sortables")); }); //]]> </script>'; } add_action('admin_footer', 'my_footer'); //prependは先頭に挿入