Category "Wordpress"を表示しています。
2019.9.29 日
巷でいうところの修正をしてもダメでした。 プラグインの問題。Wordpressのプラグインを全部止めるとアップロードできるので、ちょっとずつプラグインを起動して確認する。 php.iniの「max_execution_time」を30(秒)から60(秒)に変更。単に設定変える。 niginxの方でアップロードサイズを拡張する。 niginxのアップロードサイズ変更 niginxとapacheでリバースプロキシしているので、Wordpressのエラーに対してApacheの方のエラーログはなし。ってことはnginxの問題でレスポンスが返っているってことです。client_max_body_size 2g;を追加 location / { proxy_pass http://localhost:8...
2019.4.14 日
WordPressのメディアの貼り付けでBootstrap4のモーダルでポップアップさせてあげる例です。概ね以下のような形式で貼り付けてあげるときれいにポップアップできます。 <a href="#" data-toggle="modal" data-target="#myModal" rel="noopener noreferrer"> <img src="http://example.com/wp-content/uploads/yyyy/some-300x169.jpg" alt="" width="300" height="169" class="alignleft size-medium wp-image-44" /> </a> <!-- M...
2019.3.23 土
WordPressの環境はもう年間何回作ってるんだといった感じで、WEBのサービスとしてはかなりメジャーになってしまいました。 $ docker pull wordpress $ docker pull mariadb docker-compose.ymlを作成してプロジェクトディレクトリ直下においておく。 記述は以下のようにします。ちょっと解説すると、mysqlのデータベースとWordpressrをつなぐので、DB名とユーザー名とパスワードは同じものを設定します。同じものであれば任意の設定で構いません。 docker-compose.yml version: '2' services: wordpress: image: wordpress:latest ports: - "3001:80...
2019.1.7 月
WordPressのアクションフックの話なので特に説明も何もないんですが備忘録して。 今回の趣旨はマニュアルや資料をWordpressを使ってコンテンツを整理しておきたく、また資料はmdで保存しておきたいというのがありました。このブログもそうですが、手順書やマニュアルといったものは過去の履歴を含めて保存しておきたいのですが、Wordpressのリビジョン機能は履歴のバージョン管理ではないので、厳密な管理ができない。ですのでファイルで出力しておいてWordpressのコンテンツごとファイルでその履歴を管理してやろうという魂胆です。バックアップにもなる。 また今回はMarkdown変換のプラグインにJP Markdownを利用しています。 WordPressの記事保存時のアクションフック フック...
2018.12.26 水
composerを使うとVendorのライブラリーをすぐにつかえて嬉しい。Wordpressもそれ相応のコンテンツを作るには便利。プラグイン開発もだるい。functions.phpにやたらと複雑な機能を入れて何千行になるのも嫌だ。そこでAoutoloaderをwordpressの中で使えると便利なのです。 function.phpに読み込んだ方がいい と思います。theme単位の諸々なのでたぶんfunctions.phpに組み込むのがベスト・プラクティスなのではないかと。 wp-content/themes/sampledoc/function.php 以下を一番上あたりに追記 require_once __DIR__ . '/vendor/autoload.php'; WordPressに...
2018.10.22 月
Search Everything デフォルトの検索機能に加えて記事内の言葉に検索ワードがヒットするので、これをインストールしてやっと満足のいく検索機能になる感じです。ヒットしたワードにマーカーがつくのでとてもわかりやすいです。 有効化するとデフォルトの検索機能に勝手に機能拡張が行われるので特に何もする必要なしです。 https://ja.wordpress.org/plugins/search-everything/ Crazy Bone ログインしたIPを記録してくれるプラグインです。セキュリティーと管理を強化するプラグインです。 Crazy Bone JP Markdown 記事をマークダウンで記述できるプラグインです。 JP Markdown WordPress Popular Po...
2018.4.11 水
デフォルトでは記事のタイトルと日付のみ表示されるわけですが、カテゴリー(ターム)とかアイキャッチのサムネイルとか、強いてはカスタムフィールとの一部なんかも一覧に表示させたいという場合のカスタマイズです。 一覧にカテゴリーを表示させる カスタム投稿タイプ名: test タクソノミー名: test_taxonomy manage_edit-[カスタム投稿タイプ名]_columns (設定する関数) manage_[カスタム投稿タイプ名]_posts_custom_column (表示する関数) の2つのWordpressの関数をオーバーライドしてあげる感じになります。 function manage_add_column($columns) { $columns['category'] = "タ...
2018.4.4 水
致命的なエラーをチェックするためにサイトと通信できないため、PHP の変更は取り消されました。SFTP を使うなど、他の手段で PHP ファイルの変更をアップロードする必要があります。 やたらとバリデートが厳しくなったというべきなのか、よくわからないけどいろんな条件下で設定されているワードプレスの縛りがちょっときつくなったようです。テーマ更新時に自分自身のURLのコールバックをしているので、自分自身と通信できればOKです。また構文自体にエラーが有る場合は、これまた更新されませんが、これはWordpressを安全運用するための装置なのでここでは割愛。また根本的な問題としてテーマファイルとテーマファイルが格納されているディレクトリに書き込み権限がないとダメです。ユーザー権限の場合は777/666...
2018.4.1 日
WordPressで開発していると時折以下のようなブラウザーエラーになるときがあります。 このページは動作していません example.local でリダイレクトが繰り返し行われました。 Cookie を消去してみてください. ERR_TOO_MANY_REDIRECTS
2018.3.26 月
ちょっと遅れ気味ですが、Wordpress Restのお話です。 https://ja.wp-api.org/ https://wordpress.org/plugins/rest-api/ MovableTypeもそうだったようにWordperssもそうなりました。先日SOAPクライアントを使いましたがSOAPと大差ないというか、ほんとにAPIそのものです。 Wordpressが生まれ変わっちゃいました。 投稿を取得する WordPressに指定のURIでアクセスすると投稿の内容がjsonで取得できるというわけです。 http://example.com/wp-json/wp/v2/posts/ 以下にアクセスするとそのままjsonが取得ができます。Wordpressの(開発でよく使う)投...
2018.2.23 金
ショートコードの基本形 本家に全部書いてあるので冗長ですが。 functions.phpに以下を書きます。 /* Short code */ function foobar_func( $atts ){ return "foo and bar"; } add_shortcode( 'foobar', 'foobar_func' ); で、記事中に [foobar] というショートコードを追記します。すると「foo and bar」で出力されます。 ここまでは簡単。foobar_func()で返される値をadd_shortcode()というWordpress特有の関数でショートコードに 引数のあるショートコード 別にextract使う必要もないだろうと思いますが。 function hogeF...
2018.1.17 水
WordPressのソースの入手 初心者は本家にいってzipをダウンロード。玄人はcomposerとかGitでやったほうが楽。今回は初心者向け。 日本人なのでWordpress日本語サイトからソースをダウンロードします。頻繁にバージョンアップするので都度新しいのを落とした方が良さそう。 https://ja.wordpress.org/download/ ダウンロードしたら、適当な場所に解凍します。 今回は、 URL: http://example.com/wordpress DocumentRoot: /home/user/wwww を例に説明します。 アップロード /home/user/wwww/wordpress 解凍したものを上記パスにwordpressというディレクトリ名でアップロ...
2017.8.23 水
という機能があるんですが、一度ログインすると普通にログアウトできなくなります。ログアウトする場合は、以下のCookieを探して削除する。 wp-postpass_[32文字英数字]
2017.5.16 火
Worpressのテーマファイルは必ずしも使いやすいものではないんですが、この機能も必要なんだか不要なんだかよくわからないといった感じですが、「WordpressのためじゃないWordpress的でもない人々のための適当な設計の強引なWordpress」では重宝することになります。 固定ページのテンプレート page.php 普通の固定ページの記事を表示 page-SLUG.php 任意のページの指定スラッグをもつ固定ページを表示(ただし親記事のみ) とかいろいろできるわけですが、このページの記事をこのテーマファイルで表示するということが自由にできないと思ったら、結構できるんですね。アノテーションを使います。(PHPの/**/こっちのコメントアウトはもはや言語の一部になってますね。) pag...
2017.1.20 金
WordPressをインストールするときにドキュメントルート以下にWordpress用のディレクトリ(/cms/)を1つ作ってその中にインストールする場合はアクセスURIが http://example.com/cms/ のようなかたちになってしまいますが、トップページから全部Wordpressにしたい場合はいくつか方法があってちょっと設定変更しないとダメです。 トップページも本体のWordpressの機能にしてしまう(この場合テーマのindex.php、home.php、front_page.phpが使えます。) トップページだけWordpressの機能を使えるようにする。(この場合は、たいていのWPタグを使えるようにしつつもPHPをスクラッチで書く感じ。) ということになると思います。 ...
2017.1.4 水
テーマまでのディレクトリパス bloginfo('name'); // ブログタイトル bloginfo('url'); // ブログ URL : http://hoge.com bloginfo('wpurl'); // wordpress ディレクトリ URL : http://hoge.com/wordpress bloginfo('template_url'); // テンプレートファイル URL : http://hoge.com/wordpress/wp-content/themes/foo bloginfo('stylesheet_url'); // style.css ファイル URL : http://hoge.com/wordpress/wp-content/themes...
2017.1.4 水
WordPressで検索フォームをカスタマイズする時の方法。基本的に単に動くようにするには、テーマ内にを設定してsearch.php(検索結果ページ)を作ってあげるだけでOKです。カスタマイズはいろいろできますが、ここでは検索アルゴリズムはWPに備わっているものを使ってその他の表面的な部分を作成することにします。WordPress Codex 公式ページはこちら。 検索フォームを作成するテーマ内での基本的なコード 1. テーマ内に検索フォームを作成します。 <?php get_search_form(); ?> 2. functions.phpに以下を付け加えます。 function my_search_form( $form ) { $form = '<form role...
2017.1.4 水
revision-control WPは非常によくできたCMSで編集内容をその都度自動保存してくれます。1つの記事につき更新をかける度に自動保存してくれるので記事によってはかなりの数のリビジョンと呼ばれる自動保存がデータベースに残ります。最初の頃はいいのですが、最終的にデータベースアクセスにかなり支障をきたすので、ある程度フィックスした記事についてはリビジョンを削除した方がいいです。それらの設定を自由にできるプラグインです。 MySQLのSQL文に詳しい方はrevisionされているレコードを検索して一括削除してしまった方が速いですよ。 revision-control brBrbr300 老舗中の老舗みたいなプラグインでWPの記事編集時の改行ルールを変更してくれます。WPは欧米産なのでテキ...
2017.1.4 水
テーマの中とかでポストした記事のIDを求めないとダメな時があってその時のメモです。wpdbクラスを使ってやっています。関数内では最終的に最大値に1を加算しているので、実際は、次にポストするIDを求めていることになります。便宜修正して使ってください。 $sql = "select * from $wpdb->posts where post_type = 'post'"; $posts = $wpdb->get_results($sql); $max = multidimensionalMax($posts); print $max."<br />¥n"; function multidimensionalMax($data) { foreach($data as $l...
2017.1.4 水
SSH2の接続モジュールをインストール FTP接続は基本的に嫌なのでもしサーバーの管理権限があるのだったら、SSH2で接続するのをすすめします。なのでWordpressのアップデートなど様々なやり取りでSSH2を使えるようにした方がいいです。 WordPressの更新などでSSH2を使う 先頭の全角スペースを反映させる 日本語は文頭の最初を一文字スペースを入れてインデントするのですが、英文はやらないんですね。WPでは無駄なスペースを最初から親切に詰めてくれるのですが、日本語だとなんか変なので自然にテキストが書けるように文頭全角スペースを反映するように設定します。テーマ内のfunction.phpに以下を埋め込みます。 function my_tiny_mce_before_init_filt...
2017.1.4 水
WPのオリジナルテンプレートはテーマ内でのみ作成可能ということで、なかなか融通が効かないです。しかし融通がきかない分、システマティックで爆速という利点があります。MTのテンプレートのようにいつでもどこでも作れる感じじゃなくて、それなりに制約があるので、それをまとめておきます。 WordPressのオリジナルテーマの基本的な作り方については、いろいろなところに情報があるのでそちらを参照ください。ここで解説するのは、完全にオリジナルなテンプレート1つの作り方です。 固定ページを1つ作る まず、テンプレートをつくるための固定ページを1つ作ります。Wordpressのテーマ内には規定のテンプレート以外で自由につくることができません。テンプレートはその階層順に従って読み込まれるだけで、それ以外の単独P...
2016.12.21 水
wp-blog-header.phpを呼び出すと普通のPHPもWordpressになってしまうんですが、そのページでDownload用のヘッダーとか書き出すとエラーになっちゃうんですね。 include('../../wp-blog-header.php'); ... header('Content-Disposition: attachment; filename='.$file_name); こういう場合は、wp-blog-header.phpが更によんでいるwp-load.phpを呼び出せばまあまあいけます。wp-blog-header.phpの中身ちゃんとみてませんがheaderの内容を強制的に設定してしまっているんですね。たぶん。
2016.12.12 月
wp-post-tumblr TumblrにWordpressで作成した記事を自動的に投稿するプラグインです。投稿する内容はWordpressの記事を本体と考えているので基本的にはquoteでPOSTします。画像が投稿された場合は、これもWordpressの記事を本体としているので、投稿画像の最初の一枚しかPOSTしません。いずれにしろ本体の記事へのURLを投稿するので基本的には問題ないかと思います。quote(引用)とimage(画像)以外のPOSTには対応しておりません。また、記事更新時もTumblrにアップされます。 dounload: wp-post-tumblr_1.0 設定方法がやや面倒なので、以下の説明を参考にしてください。 Tumblrのアプリを作成する。(コンシューマーキー...
2016.12.5 月
WordPressのカスタムフィールドはMTと比べてとてもシンプルです。WPの基本的な約束事として固定ページと 投稿ページは基本的に同じものです。ですのでカスタムフィールドも基本的に同じ構造で保ちます。管理画面から記事を投稿する際には、右上の「表示オプション」からカスタムフィールドにチェックを入れて、カスタムフィールドの入力欄を表示します。後はkeyと値を入れればOKです。登録したkeyは以後プルダウンで選択できるようになります。 加えてテーブル構造が非常にシンプルです。wp_postsが記事やページそのものをストックしているテーブル、wp_postmetaがカスタムフィールドを格納しているテーブルです。また、wp_postmetaは4つのフィールドしかありません。 meta_id bigi...
2016.12.4 日
カスタム投稿タイプを登録する functions.phpに新しいカスタム投稿タイプを登録するのがいちばんカンタンです。 ここでは「bookmark」というカスタム投稿タイプを登録します。もっともミニマルな形だと以下のようなコードになります。 // functions.php add_action( 'init', 'create_post_type' ); function create_post_type() { register_post_type( 'bookmark', array( 'labels' => array( 'name' => __( 'Bookmarks' ), 'singular_name' => __( 'Bookmark' ) ), 'publ...
2016.11.7 月
upload_limit1_wpデフォルトでは2MBがアップロードサイズの上限になっています。上限を調整するにはWordpressのなんかを設定変更するとおもいきや、.htaccessとphp.iniの変更でOKみたいです。動画などのメディアをアップすることを考えると20MBぐらいはほしいところです。 レンタルサーバーでは設定に制限があるので、どちらか可能な設定方法でやってみてください。またロリポなどはphp.iniをコントロールパネルから設定できたりするので、そういう設定方法もあります。 結局、Wordpressのアップロードサイズはphpの制限に依存しているってことでした。 php.ini memory_limit = 20M post_max_size = 20M upload_max...
2016.10.29 土
WPではテンプレート(テーマ)を作成する際にテンプレート階層(優先順位)があるので、MT的な考え方でアーカイブテンプレートを作成できません。自分なりに好きなようにカスタマイズしたい場合は、作成工程をWPのルールに従って作成しないとダメです。ですので、ここでは、 スラッグを使ってオリジナルのアーカイブテンプレートを作成してしまう WPタグといわれている標準のWP関数を使わずにWPのオブジェクトを使ってDBから直接データを取り込んで操作してしまう という方法で進めます。完全に自由自在にカスタマイズするのだったらこの方法が一番簡単です。しかしWPの標準機能の方が安定しているし情報も多いのでそれほどでもないって方は通常のテンプレート作成方法(archive.php)で作成した方が無難です。 そもそも...
2016.10.24 月
WPの歴史的な経緯がいろいろあってテーマディレクトリまでのパスの取得の方法は複数あります。必要になる項目は、URLとServer内のフルパスということになるかと思いますが、これがまたややこしい。おそらく以下の例以外にもたくさん関数があるような気がします。 テーマまでのフルパスを取得する もっとも楽なのが、すでにdefineされているTEMPLATEPATHです。これだけでフルパスを取得できます。何らかのテーマカスタマイズでオリジナルのテンプレートをインクルードするとか画像を呼び出すとか多方面で使えます。 <?php print TEMPLATEPATH; ?> <?php include(TEMPLATEPATH.'/underbar.php'); ?> <?p...
2016.10.23 日
WordPress Codex WordpressのフィードはそのまんまPHPで作成します。現在4種類のフィードが使えるようになっているようです。オリジナルのテーマ作成時にはフィードの作成も欠かせないので作り方を解説します。すでに公式ページに詳細に書かれているのですが…。 以下のURLですでにアクセスが可能になっています。ですが、テーマによってはアクセスできない場合があるみたいです。 http://example.com/wp-rss.php http://example.com/wp-rss2.php http://example.com/wp-rdf.php http://example.com/wp-atom.php http://example.com/?feed=rss http:...
2016.10.22 土
WordPressなんかの記事作成・更新時のPING送信一覧です。 http://rpc.reader.livedoor.com/ping http://ping.rss.drecom.jp/ http://ping.ask.jp/xmlrpc.m http://api.my.yahoo.co.jp/rss/ping?u=あなたのサイトのRSSファイルのアドレス http://ping.fc2.com http://rpc.technorati.jp/rpc/ping http://ping.namaan.net/rpc/ http://www.blogpeople.net/servlet/weblogUpdates http://blog.goo.ne.jp/XMLRPC http://b...