Webサイトを多言語化するWordpressプラグインはいくつかあるようですが、設計が素晴らしく、使いやすかったBogoを紹介します。 Bogoのインストールと初期設定 プラグインのインストール 公式プラグインディレクトリからダウンロード後インストールする場合は下記から。 プラグインページ wp-cliでのインストール・アクティベートは下記で。 wp plugin install bogo --activate 表示されるURL インストールすると、下記のようなURLで言語ごとの表示が可能になります。アドレス表示はhome_url()を使う前提です。 http://sample.com/en/ 言語パックのインストール・アクティベート 言語を設定する場合は、まず言語パックのインストール後、それからアクティベートを行います。 英語パックをアクティベートした状態 テキストの翻訳 サイトのタイト
WordPressのWP_Queryやpre_get_postsアクション内で投稿を取ってくる時に、一緒にできない複数の条件(複数のSELECT文が必要な条件)で投稿を取得したいような時のメモ。 メインループ外の場合は2回WP_Queryを実行(SQLを発行)してそれぞれ取得したデータの配列をゴニョゴニョとマージしてしまうか、2回while( $the_query->have_posts() )で回してしまう方法もあります。(処理が多いかもですが、現実的にはこれが単純で簡単だと思います。) サンプル 実現したいこと story というカスタム投稿(post_type)を全て取得 数字の入るカスタムフィールド_sotry_noの値の順に並べて、 その後ろに、_sotry_no が存在しない投稿を続ける UNION (MySQL) WordPressで使われているMySQL的にはUNION
先日「AMPについて、まじめに考えるか」と書きましたが、さっそく当サイトのAMP対応を行いました。今日はその作業内容をまとめてみます。 今日の記事は、技術的な話しかありません。 AMPとは AMPは、Googleなどが主導する、モバイルでのサイト閲覧の高速化を目指すプロジェクトのことです。高速化は、キャッシュの仕組みやページの軽量化により実現されています。サイト作成者がAMPに対応するには、「AMP HTML」というフレームワークの仕様に従ったページを作成しないといけません。 サイトによっては、AMP対応ができない場合もあります。AMP対応時に障害になりそうなものを挙げておきます。 JavaScriptが使えない(ただし、後述の通り、AdSenseやGoogle Analyticsは可) 外部cssも使えない(内部スタイルシートの上限は約50kb) 使えないタグや使用に制約のあるタグがある
WEBサイトのCSSや、JavaScriptは、高速化の観点から、縮小化(余計な改行や スペース、コメントを取り除く)した方が良いとされています。 PageSpeed Insightsで、よく注意されるアレです。 ただ僕の場合、リソースを縮小化してしまうと、開発者ツールでデバッグがしづらいですし、不具合の原因にもなり得るため、あまり使用してきませんでした。高速化や、SEO的効果といっても、対応する面倒さ以上の効果もあまり感じないですし。 けれど、最近AMPなるものも出てきました。 これに対応させるには、CSSの総容量を50KBまでに抑える必要があります。今までは、CSSの総容量とかには、あまり気を遣う必要がなかったので、縮小化などは「まぁいいや」程度に思っていました。けれども、総容量に制限のあるAMPでは、なるべく多くのスタイルを書くとなると、縮小化は必要になってくるかもしれません(50K
うちの会社でひとつサーバを立てて、WordPressのサイトを立ち上げることになりました。OSはCentOS7、WebサーバはNginxで、php-fpmを使用します。 まあ、昨今WordPressを動かすだけでよければ、パッケージをガンガンガンとインストールして適当に設定すればハイ出来上がり、なのですが。今回はちょっと野望を抱いて、php-fpmをDockerで動かしてみることにしました。 Dockerを使う理由は、脆弱性が次々と発見されるPHPを手軽にアップデートできるようにしたかったからです。ホストにベタでインストールすると、他のアプリケー ションとの依存性があったりパッケージのアップデートが遅かったりしたりで、なかなかおいそれとバージョンを上げるわけにはいきません。ですが、 Dockerで動かしていればphp-fpmのみを独立してコントロールできるので、アップデートも手軽に行なうこ
WordPressをマジメにAMP(Accelerated Mobile Pages)対応させた話 #AMPlify ku-suke 2016.10.06 474 6616395150 こんにちは、2016年中途入社のku-sukeです。現在はkidslyという保育園むけサービスのプロダクトオーナーを担当しています。今回は個人的にも注目しているAMP(Accelerated Mobile Pages)をこのテックブログに実装した話を書きたいと思います。特に、WordPressプラグインを入れるだけの簡易対応ではなく、フッターまわりやデザインの調整などをまじめに対応させたので、企業をはじめメディア運営をWordPressで運用されている方のお役に立てば幸いです。 事業サイドがAMPに乗っかるか考える事 - ku-sukeのブログ AMPとは? AMPとはAccelerated Mobile
WPテーマをマルチ言語対応させる主な手順 WordPressテーマをマルチ言語に対応させるには、以下のような手順が必要です。 <html>の言語属性をマルチ言語対応にする 文字エンコーディングを指定する マルチ言語対応させたいテキスト部分を翻訳用の関数で囲む テーマ内に翻訳用ファイル設置場所を作る テキストドメインを適用させるコードを書く Poeditを用いて翻訳用ファイルを作成する Poeditを用いて翻訳をする 翻訳ファイルの作成などは、「かなり大変なのでは?」と思っていましたが、Poeditという無料で使えるソフトを利用すれば、かなり手順を簡略化できます。 <html>の言語属性をマルチ言語対応にする まずは、HTMLのルート要素となる<html>タグの確認を行います。 <html>タグのlang属性が以下のように固定されている場合は変更する必要があります。
WordPress で構築したサイトのサイト名とキャッチフレーズを多言語化する方法です。 Bogo プラグインを導入して有効化していることが前提となります。 Bogo は WordPress サイトを手軽に多言語化できるプラグインです。 詳しくは以下の記事でご紹介しています。 WordPress サイトの多言語化に もう迷わない そう、Bogo ならね この記事では日本語と英語という 2ヶ国語のマルチリンガル サイトを例にして、サイト名とキャッチフレーズを多言語化します。 日本語サイトではサイト名「デザイン ハック アンド スラッシュ」、キャッチフレーズ「きっと役立つ情報を わかりやすく記事にしよう」が表示され、英語サイトではサイト名「Design Hack and Slash」、キャッチフレーズ「Hopefully, there are some good ideas for you.」
WordPressって便利ですよね。 このサイトもWordpressを使って作成しています。 WordPressって記事とかをDBに保存し、それを読み書きしている仕組みなんですが Wordpressで、Wordpressが使用するDB以外のDBを参照したいと思う時、 例えば別の会社が作ったシステムと連動させたいとか、自作のプラグインを作る時、とか どうしても、既存のテーブル以外のテーブルが必要だ、とかあるかと思います。 そういう時、mysql_queryとかでいちいちデータを取得したりコネクションを貼ったりする…のもいいんですが、 そんなやり方ではなく、Wordpressには実はデータベースを操作するwpdbという便利な関数がありますので、 この関数を使うのがスマートかと思います。せっかく用意されたものですし。 wpdbの基本定義 global $wpdb; $db_user = $wpd
WordPress ではセキュリティを非常に重要なものと考えています。しかし、他のどんなシステムでも同様ですが、基本的なセキュリティ対策がなされていない場合には問題が発生する可能性はあります。このページでは、よくある脆弱性について、そして WordPress を安全に保つためにできることを紹介します。 このページはセキュリティに対する心配を一掃するその場限りの応急措置とは違います。特定のセキュリティ問題や不明な点を抱えている場合は、コンピューターセキュリティの知識を十分に持っている信頼のおける人ときちんと話し合うべきです。 セキュリティとは 基本的には、セキュリティとは「完璧に安全なシステム」のことではありません。そのようなものは実用的ではないか、見つけたり運用したりするのは不可能といえるでしょう。セキュアなサーバーは、サーバー管理者のコントロールのもとに、リソースのプライバシー・整合性・
『Googleから「マルウェアに感染している」という警告が届いたので、調査して欲しい』という依頼を受けて、とあるサイトの調査をしたところ、どうやらWordPressにマルウェアが仕込まれている模様。 かなり時間を掛けて広範囲にヤラれていたので、マルウェアをすべて取り除くのに苦労したのですが、その際に見付けたマルウェアが中々恐しいものだったので、ここに書き残しておきたいと思います。 なお、真似してマルウェアを作られても困るので、ソースの一部を画像で載せることにします。 ## マルウェアのソースを人間に読めるようにしてみる では、早速マルウェアの中身を見てみましょう。 まず、いきなり始まるコメント行。そして、長くて一見ランダムに見える文字列。 そして2行目でランダムに見える文字列を base64_decode() し、eval() しています。base64_encode()しているのは、ソース
ja.reimageplus.comの広告表示を止める方法 昨日に続き、マルウェア駆除の話です。 今回は、ja.reimageplus.comの広告のポップアップの削除方法です。 基本は、 Oiq.sandtypecaselinage.com のポップアップを削除する方法 と同じです。 ところが、 MalwareBytesとadwcleanerで検出&駆除を行い、パソコンを再起動、chromeのリセットを行ったのですが、なぜかポップアップ表示が再発します。 Chromeの設定を確認していると、Chromeの拡張機能の中に「GosavEnow」という、見るからにあやしい拡張機能があったので削除するのですが、Chromeを再起動すると、再び拡張機能に登録されています。んーーー。 そこで、Chromeの「設定」をよくよく確認してみたら、起動時に開くページの項目に www.search.ask.c
Wordpressのローカルとリモートの同期において、テーマ関係ファイルはアップロードすれば良いだけだが、最も面倒なのがデータベースの同期だ。例えば、ローカルからリモートへ同期する場合、データベースはローカルからファイルにエクスポートして、そのファイルに必要な情報変換を加え、サーバーのデータベースにそのファイルをインポートするという作業が必要だ。リモートからローカルへの同期もその逆の作業が必要だ。以前からこの煩わしさを解消してくれるツールを探していたのだが、いつの間にかそれを叶えてくれるwordmoveなるものが出現していた。
Daisuke Takahashi 様 ご回答ありがとうございます。 いろいろと試してみているのですが、なかなかうまくいきません。 $args = array( 'post_type' => 'custom_post', 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'column_1', 'value' => 'aaa', 'compare' => '=' array( 'key' => "column_2,column_3", 'value' => "bbb" 'compare' => '=' ), array( 'key' => "column_3", 'value' => "bbb" 'compare' => '=' ) ) ); 上記を、以下のように書き換えて試してみたのですが、結果が返ってきません。 $a
既存のプロジェクトに途中参加した際の出来事です。 新しいカテゴリーのページを追加したいということでカスタム投稿タイプを作成したのですが、既存のページのレイアウトが変わってしまっていると連絡をもらってしまいました。調べた所このプロジェクトではwordpressの固定ページをカスタム投稿のトップページの様に使っていて、固定ページのslug(URL)とカスタム投稿タイプ名(URLになる部分)が同じ文字列になっていました。新しくカスタム投稿タイプを追加する前は固定ページで表示されていたものが、機能追加後はカスタム投稿のアーカイブページが表示されてしまっていたのが原因だったようです。 まぁそもそも固定ページのslugと同じカスタム投稿タイプを作成するのどうなの?って感じなのですが、 カスタム投稿のトップページをexample.com/hoge カスタム投稿の記事ページをexample.com/hog
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く