Kite
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: 画像が消えてしまう。フォーラム: プラグイン
返信が含まれるトピック: Advanced Custom Fields セレクトボックスのラベルの一覧出力自己解決しました。
下記で値(キー)とラベルのそれぞれの一覧を出力できました。
どうやらセレクトボックスの一覧は get_field_object() の “choices” に格納されている模様です。(”field_name”は該当するフィールド名)<?php $field = get_field_object('field_name'); $key = array_keys($field['choices']); $label = $field['choices']; echo implode(', ', $key); echo implode(', ', $label); ?>以上、ご参考になればと思います。
フォーラム: 使い方全般
返信が含まれるトピック: クライアントワークでのテスト環境をみなさんはどうされていますか?Fumito MIZUNO さん
参考サイトありがとうございます!
こちらを参考にして是非試してみたいと思います。Takuro Hishikawa さん
再度アイデアいただきありがとうございます。
実はこちらの方法を一度検討したんですが、検索機能が必要でしたので、断念しました。フォーラム: 使い方全般
返信が含まれるトピック: クライアントワークでのテスト環境をみなさんはどうされていますか?Takuro Hishikawa さん
ご回答ありがとうございます。
こういうプラグインもあるんですね。詳しく見てみたいと思います。Fumito MIZUNO さん
いろいろアイデアとアドバイスありがとうございます。
(A)パターン
リモート投稿(xmlrpc)を使えば、(A)パターンでもかなり楽になるかもしれません。こちらであれば結構ありかもしれません。
細かいところでの二重作業は妥協できる範囲かなと思います。(B)パターン
シェルスクリプト書いておけば、ほぼ自動化できますね。こちらについてもう少し詳しく教えていただけますでしょうか。
もしくは参考になるサイトでもかまいません。
実はかなり気になっていたんですが、詳しく紹介しているところをなかなか見つけられなくて。「テスト用のDBで単純に上書きすると、コメントや問い合わせ等が消えてしまう」
のほうが問題かもしれません。確かそうですね、コメントと問い合わせを利用しないサイトの予定でしたので、考えておりませんでしたが、テスト中に本番DBに変更があるサイトの場合は問題がありますね。
フォーラム: 使い方全般
返信が含まれるトピック: クライアントワークでのテスト環境をみなさんはどうされていますか?digit@maetelさん
早速のご回答ありがとうございます。
ドメインの直下に、同じ内容のwpサイトを3つ作成しています。
こちらは同じDBを使うということでしょうか?
では少し具体的な運用例を挙げるとします。
トップページ、固定ページ、投稿、カスタム投稿タイプがそれぞれあるサイトがあるとします。
定期的に投稿とカスタム投稿タイプのコンテンツ追加があり、不定期に既存コンテンツの一部分のみの変更がある(例:画像の変更、一部のテキストの追加・削除など)。サイト更新のフローとしては、必ずテスト/ステージング段階で一度Web上でクライアント確認があり(その間本番は変更前の状態で公開中)、OKが出た段階で追加&変更分を本番に反映する。
この場合、みなさんならいかがいたしますか?
こちらでは以下のような方法と問題点を考えてみました。(A) 完全に別DBとWPのテスト環境を用意し、OKが出た段階で本番のWPで同じ作業をする。
問題点:同じ作業を2回するのは無駄、その分ヒューマンエラーの可能性が高くなる、しかもテストでOKが出たあと。(B) 完全に別DBとWPのテスト環境を用意し、OKが出た段階でテストDBのURLを書き換え、本番にインポートする。
問題点:DBのエクスポート、URL書き換え、インポートがかなり手間。大規模なサイトとなれば、変更がないほとんどなのに、無駄にDBの上書きをすることになる。またテストの投稿時に挿入した画像なども、本番の方にも再度入れないといけない。(C) 運用時は基本本番のWPで作業。追加コンテンツは非公開にし、クライアントにはWPにログインした状態で確認してもらう。変更するコンテンツは同じものを複製して、必要部分を変更後こちらも非公開で確認してもらう。
問題点:変更予定の既存コンテンツは変更前と変更後の両方が見れる状態。インデックス系のページの変更はこちらの方法では対応できないので、本番で直接変更、もしくはリンクがつながっていないページを個別に用意、もしくはテンプレートファイル内で直接テストと本番の内容を分岐する必要がある。(D) カスタムフィールドを応用して、ひとつの投稿内に本番とテストの両方を記述できるようにし、テストに記述があれば、WPにログイン中はこちらの内容を表示。
問題点:システム構築に時間がかかる。最終的にはやはり記事内ではあるが、テストの内容を本番に貼り付ける必要がある、ただし(A)よりはヒューマンエラーの確率はかなり減ると思われます。理想にわりと近いのは(D)かなと思っておりますが、もしもっといいやり方やアイデアなどございましたら、是非お聞かせください。よろしくお願いいたします。
フォーラム: 使い方全般
返信が含まれるトピック: 管理画面のサイドメニューを消す+該当ページにアクセスできないようにTsuyoshi.さん
早速ご回答いただきましてありがとうございます。
検索してもなかなか見つからなかったんですが、
意外と結構簡単にできるんですね。ありがとうございました。
フォーラム: 使い方全般
返信が含まれるトピック: 記事編集画面のカスタマイズ方法(外部リンクボタンをつける)本件自己解決いたしましたので、コードを載せておきます。
function my_custom_button() { if( function_exists( 'add_meta_box' )) { add_meta_box( 'my_custom_button', 'メタボックスタイトル', 'my_custom_button_html', 'custom_post_slug', 'side', 'low'); } } function my_custom_button_html($post) { echo '<div style="text-align:center"><a class="button button-primary button-large" href="http://example.com/'.$post->ID.'" target="_blank">ボタン</a></div>'; } add_action('admin_menu', 'my_custom_button');add_meta_box()については Codex を参照。
フォーラム: 使い方全般
返信が含まれるトピック: wp_get_archives の月別の英語表記時「年」を消す方法nobitaさん、ご回答ありがとうございます。
度々お世話になりました。問題なく表示できました。
逆に年別表示には翻訳が付いてないので「年」が表示されませんよね?
意図的ですかね。。。このたびもありがとうございました。
フォーラム: 使い方全般
返信が含まれるトピック: テンプレート内の関数想像ですが、while loopの中で、関数を定義していませんか?
してました!
fatal errorは、ループの中で関数が定義されて、二回目のループで、同じ関数が定義されているために出ているのではないかと思います。
同じループ内でも、先に関数を定義した場合は問題ないでしょうか?
フォーラム: 使い方全般
返信が含まれるトピック: テンプレート内の関数nobitaさん、こちらの質問にもご回答いただきましてありがとうございます。
再度色々試してみましたところ、どうやら
<?php while ( have_posts() ) : the_post(); endwhile; ?>のループ内で下記のエラーが出ます。
Fatal error: Call to undefined function hoge() in /〜〜.php on line ◯◯
フォーラム: 使い方全般
返信が含まれるトピック: functions.phpでウィジェットタイトルの初期値を書き換えるフィルタなので、翻訳とかが終わって、最終的に出力する値を書き換えるという意味です。
そうだったんですね!
en_US環境なら、Pagesを、俺の固定ページ に書き換えるとか、jaなら固定ページを、俺の固定ページに書き換える作業をしています 🙂
ということはコアファイル、翻訳ファイルを一切弄らずに英語表記にする場合は
$before = array('固定ページ'); $after = array('Pages');になるということですね。
フォーラム: 使い方全般
返信が含まれるトピック: functions.phpでウィジェットタイトルの初期値を書き換える返信が遅くなりまして大変申し訳ございません。
再度アドバイスいただきましてありがとうございます。ちなみに今回の件については、ウィジェット自体にも少しカスタマイズが必要でしたので、
新たにウィジェットを作ることにしました。なお、勉強としてnobitaさんの方法についてお伺いしたのですが、
上記の場合Calenderが暦に置き換わるということですよね?カレンダーのデフォルトはタイトル表記なしなので、
例としてあまり良くないかもしれないので、固定ページを例とした場合、
「ページ」などに置き換えれば「ページ」が出力されると思いますが、
もし「Pages」を表示させたい場合、「Pages」のまま置き換えても、
翻訳されて「固定ページ」とはならないでしょうか。もし難しい問題であれば、無視してください。
本来の目的は達成できておりますので。teckingさん、nobitaさんありがとうございました。
フォーラム: マルチサイト
返信が含まれるトピック: 子サイトのサムネイルなどを新着順に並び替える方法なんとか自己解決できました。
他の方の参考になるかもしれませんので、サンプルソースを載せておきます。<?php $blogs = array(2,3,4); $name = array('blogA','blogB','blogC'); $namae = array('ブログA','ブログB','ブログC'); $thum = array('thumA','thumB','thumC'); foreach($blogs as $id){ switch_to_blog($id); $url[] = get_bloginfo('url'); query_posts('showposts=1'); if(have_posts()):while(have_posts()):the_post(); $time[] = get_the_time('Y.n.j'); endwhile; endif; restore_current_blog(); } arsort($time); foreach($time as $key => $value){ ?> <li class="<?= $name[$key] ?>"> <h2><?= $namae[$key] ?></h2> <p><?= $time[$key] ?> UPDATE <em>NEW</em></p> <a href="<?= $url[$key] ?>"><img src="<?= get_template_directory_uri(); ?>/images/<?= $thum[$key] ?>.jpg" alt="<?= $namae[$key] ?>のサムネイル" /></a> </li> <?php }上記で問題なく動作しました。
もし変なところやもっとスマートなやり方があれば、お知らせいただけますと幸いです。フォーラム: 使い方全般
返信が含まれるトピック: functions.phpでウィジェットタイトルの初期値を書き換えるteckingさん、nobitaさん、ご回答ありがとうございます。
ご返信遅くなりまして申し訳ございません。サンプルソースありがとうございます。利用させていただきます。
My_Widgetなどを作ってフックするか、出力前に置き換えるか悩むところです。
プログラミング上前者の方が正しいように思いますが、
タイトルだけのために長いソースを書かないといけないのもなんだかなぁ。。。非表示でしたら、filterで一括でできますが、それぞれを置き換えるのも同じ要領でできるものかなと思っていましたが、そういう訳ではないんですね。
このたびは大変ありがとうございます。
引き続きもしもっとスマートな方法があればご教授ください。
よろしくお願い致します。フォーラム: 使い方全般
返信が含まれるトピック: functions.phpでウィジェットタイトルの初期値を書き換える