Warning: Declaration of FeedWordPie_Item::get_id($hash = false) should be compatible with SimplePie_Item::get_id($hash = false, $fn = 'md5') in /home/nekyo/nekyo.wp.xdomain.jp/public_html/wp-content/plugins/feedwordpress/feedwordpie_item.class.php on line 0

Warning: Declaration of FeedWordPress_Parser::parse(&$data, $encoding) should be compatible with SimplePie_Parser::parse(&$data, $encoding, $url = '') in /home/nekyo/nekyo.wp.xdomain.jp/public_html/wp-content/plugins/feedwordpress/feedwordpress_parser.class.php on line 0

Warning: Cannot modify header information - headers already sent by (output started at /home/nekyo/nekyo.wp.xdomain.jp/public_html/wp-content/plugins/feedwordpress/feedwordpie_item.class.php:0) in /home/nekyo/nekyo.wp.xdomain.jp/public_html/wp-includes/feed-rss2.php on line 8
Wordpress – 日々のできごと http://nekyo.wp.xdomain.jp きがついたこと、みたこと、やったこと、かんじたこと Fri, 21 Apr 2017 02:46:48 +0000 ja hourly 1 4.7 “ヴォーン” を入れたら・・・ http://nekyo.wp.xdomain.jp/2016/12/07/4-7-%e3%83%b4%e3%82%a9%e3%83%bc%e3%83%b3-%e3%82%92%e5%85%a5%e3%82%8c%e3%81%9f%e3%82%89%e3%83%bb%e3%83%bb%e3%83%bb/ http://nekyo.wp.xdomain.jp/2016/12/07/4-7-%e3%83%b4%e3%82%a9%e3%83%bc%e3%83%b3-%e3%82%92%e5%85%a5%e3%82%8c%e3%81%9f%e3%82%89%e3%83%bb%e3%83%bb%e3%83%bb/#respond Wed, 07 Dec 2016 08:19:56 +0000 http://nekyo.wp.xdomain.jp/?p=2091 続きを読む 4.7 “ヴォーン” を入れたら・・・ ]]> WordPress 4.7 “ヴォーン” にアップデートしたら
head-cleaner プラグインでワーニングが出るようになってしまった。
更に、いくつか持っているサイトの中には管理画面にログインできないものも・・・(泣)
管理画面に入れるものはプラグインから head-cleaner をアンインストール。
管理画面にも入れない場合は、ftp で接続して plugins ディレクトリ内の head-cleaner ディレクトリごと削除する。

とりあえず持ってる WordPress 環境は対処済み。

]]>
http://nekyo.wp.xdomain.jp/2016/12/07/4-7-%e3%83%b4%e3%82%a9%e3%83%bc%e3%83%b3-%e3%82%92%e5%85%a5%e3%82%8c%e3%81%9f%e3%82%89%e3%83%bb%e3%83%bb%e3%83%bb/feed/ 0
WordMove!!! http://nekyo.wp.xdomain.jp/2016/10/14/wordmove/ http://nekyo.wp.xdomain.jp/2016/10/14/wordmove/#respond Fri, 14 Oct 2016 07:32:36 +0000 http://nekyo.wp.xdomain.jp/?p=2077 続きを読む WordMove!!! ]]> いくつか WordPress サイトを持っているけれど、その一つが急激に容量が増えていて
いっぱいになる前に何とかしなきゃと思って “WordPress 同期” で調べたら
『WordMove』 というのが見つかった。
Ruby で動いているが、本番とステージング環境の同期とかができるらしい。

いいねぇ 🙂

ここも重要な備忘録満載なのでクラッシュすると怖い。
定期的にDBのバックアップは取っているけど、
できればミラーリング環境を用意したい。

こんな時どうしたらいいかわからないの。
そんな時に WordMove を使えば良いと思うよ。

まあ、まだ使ってはいないんですけどね(笑)
忘れないように取り急ぎ、記事にしておきます。 😉

]]>
http://nekyo.wp.xdomain.jp/2016/10/14/wordmove/feed/ 0
Raspberry Pi に php7 を入れる http://nekyo.wp.xdomain.jp/2016/09/14/raspberry-pi-%e3%81%ab-php7-%e3%82%92%e5%85%a5%e3%82%8c%e3%82%8b/ http://nekyo.wp.xdomain.jp/2016/09/14/raspberry-pi-%e3%81%ab-php7-%e3%82%92%e5%85%a5%e3%82%8c%e3%82%8b/#respond Wed, 14 Sep 2016 05:07:14 +0000 http://nekyo.wp.xdomain.jp/?p=2061 続きを読む Raspberry Pi に php7 を入れる ]]> 先ずインストールされている一覧を表示
$ dpkg -l

ii  php-apc        4.0.7-1      all          APC User Cache for PHP 5 (transit
ii  php-gettext    1.0.11-1     all          read gettext MO files directly, w
ii  php-tcpdf      6.0.093+dfsg all          PHP class for generating PDF file
ii  php5           5.6.24+dfsg- all          server-side, HTML-embedded script
ii  php5-apcu      4.0.7-1      armhf        APC User Cache for PHP 5
ii  php5-cli       5.6.24+dfsg- armhf        command-line interpreter for the
ii  php5-common    5.6.24+dfsg- armhf        Common files for packages built f
ii  php5-gd        5.6.24+dfsg- armhf        GD module for php5
ii  php5-json      1.3.6-1      armhf        JSON module for php5
ii  php5-mcrypt    5.6.24+dfsg- armhf        MCrypt module for php5
ii  php5-mysql     5.6.24+dfsg- armhf        MySQL module for php5
ii  php5-readline  5.6.24+dfsg- armhf        Readline module for php5

php5 関連を削除
$ apt-get remove php5*

以下のパッケージは「削除」されます:
  libapache2-mod-php5 php-apc php-gettext php-tcpdf php5 php5-apcu php5-cli php5-common php5-gd php5-json php5-mcrypt php5-mysql php5-readline phpmyadmin

先頭に rc とついていれば削除されている。

rc  php5-apcu                                             4.0.7-1                         armhf                           APC User Cache for PHP 5
rc  php5-cli                                              5.6.24+dfsg-0+deb8u1            armhf                           command-line interpreter for the php5 scripting language
rc  php5-common                                           5.6.24+dfsg-0+deb8u1            armhf                           Common files for packages built from the php5 source
rc  php5-gd                                               5.6.24+dfsg-0+deb8u1            armhf                           GD module for php5
rc  php5-json                                             1.3.6-1                         armhf                           JSON module for php5
rc  php5-mcrypt                                           5.6.24+dfsg-0+deb8u1            armhf                           MCrypt module for php5
rc  php5-mysql                                            5.6.24+dfsg-0+deb8u1            armhf                           MySQL module for php5
rc  php5-readline                                         5.6.24+dfsg-0+deb8u1            armhf                           Readline module for php5

php7.0 のリポジトリを登録

$ sudo vi /etc/apt/sources.list
ファイルの最後に以下の行を追加
deb http://repozytorium.mati75.eu/raspbian jessie-backports main contrib non-free

$ sudo gpg --keyserver pgpkeys.mit.edu --recv-key CCD91D6111A06851
$ sudo gpg --armor --export CCD91D6111A06851 | sudo apt-key add -
$ sudo apt-get update

apt-get install php7.0 php7.0-mysql php7.0-gd php7.0-mbstring php7.0-curl php7.0-xml php7.0-xmlrpc
apt-get install php php-mysql php-gd php-mbstring php-curl php-xml php-xmlrpc (自動的に php7.0 系がインストールされる)
でインストール

なんか立ち上げなおしたら「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」とか出た。
apache を入れ直したりガチャガチャやっていたのだが、apache のログを見たら Exec-php が悪さをしていた。
php7.0 用のパッチを宛てたら立ち上がった。
うん。前より早くなってるね。DBアクセスは相変わらずだけど。

参考:install-php-7-on-raspbian-raspberry-pi

]]>
http://nekyo.wp.xdomain.jp/2016/09/14/raspberry-pi-%e3%81%ab-php7-%e3%82%92%e5%85%a5%e3%82%8c%e3%82%8b/feed/ 0
PHPのバージョンを7に上げてみた http://nekyo.wp.xdomain.jp/2016/09/08/php%e3%81%ae%e3%83%90%e3%83%bc%e3%82%b8%e3%83%a7%e3%83%b3%e3%82%92%e4%b8%8a%e3%81%92%e3%81%a6%e3%81%bf%e3%81%9f/ http://nekyo.wp.xdomain.jp/2016/09/08/php%e3%81%ae%e3%83%90%e3%83%bc%e3%82%b8%e3%83%a7%e3%83%b3%e3%82%92%e4%b8%8a%e3%81%92%e3%81%a6%e3%81%bf%e3%81%9f/#comments Thu, 08 Sep 2016 07:12:57 +0000 http://nekyo.wp.xdomain.jp/?p=2053 続きを読む PHPのバージョンを7に上げてみた ]]> PHP7 は PHP5系に比べてパフォーマンスが約2倍に改善されているらしい。
このホームページスペースはPHPのバージョンが切り替えられるので
PHP7 に上げて動作確認してみた。

WordPress もプラグインもほぼ問題なく動いてイルっぽい。
多少スピードアップもした感じ。

ただし、Exec-PHP だけはそのままでは動かない。
Parse error: syntax error, unexpected ‘new’ (T_NEW) in wp-content/plugins/exec-php/exec-php.php on line 22
とか出るので
 $GLOBALS[‘g_execphp_manager’] =& new ExecPhp_Manager();
  ↓
 $GLOBALS[‘g_execphp_manager’] = new ExecPhp_Manager();
の様に修正する。同様に、
wp-content/plugins/exec-php/includes/ にある manager.php、admin.php、cache.php、ajax.php 内に記述されている
=& も = に置換すると動くようになる。

これは phpversion() の結果 → 7.0.16

まあ Exec-PHP は使うなってことだね。便利なんだけどな。

PHP5.6.x から PHP7.0.x  への移行

]]>
http://nekyo.wp.xdomain.jp/2016/09/08/php%e3%81%ae%e3%83%90%e3%83%bc%e3%82%b8%e3%83%a7%e3%83%b3%e3%82%92%e4%b8%8a%e3%81%92%e3%81%a6%e3%81%bf%e3%81%9f/feed/ 1
2重投稿を削除する http://nekyo.wp.xdomain.jp/2016/08/25/%ef%bc%92%e9%87%8d%e6%8a%95%e7%a8%bf%e3%82%92%e5%89%8a%e9%99%a4%e3%81%99%e3%82%8b/ http://nekyo.wp.xdomain.jp/2016/08/25/%ef%bc%92%e9%87%8d%e6%8a%95%e7%a8%bf%e3%82%92%e5%89%8a%e9%99%a4%e3%81%99%e3%82%8b/#respond Thu, 25 Aug 2016 02:14:28 +0000 http://nekyo.wp.xdomain.jp/?p=2037 続きを読む 2重投稿を削除する ]]> RSSから読み込んだ内容を投稿として保存するサイトを作ったのだが更新日時の関係なのか、同じものが複数投稿される現象が発生。
手動で消すのも何なので、同じタイトルの投稿が複数あったら自動的に削除するようにしてみた。

先ずどこで動かすかということで、テーマに含まれる functions.php で action を追加。
実際のアクションの内容は、同じタイトルをグループ化して最小のIDを持つレコード以外を削除する感じ

function duplecate_delete() {
	global $wpdb;

	$wpdb->query(
		"DELETE FROM {$wpdb->prefix}posts WHERE {$wpdb->prefix}posts.ID NOT IN (
SELECT min_id
FROM (
	SELECT MIN(t1.ID) AS min_id
	FROM {$wpdb->prefix}posts AS t1
	WHERE t1.post_type = 'post'
	GROUP BY t1.post_title
	) AS t2
)
AND {$wpdb->prefix}posts.post_type = 'post'");
}
add_action('init', 'duplecate_delete', 1);

テーマを更新すると functions.php も初期化される場合もあるので備忘録として残しておこう。

]]>
http://nekyo.wp.xdomain.jp/2016/08/25/%ef%bc%92%e9%87%8d%e6%8a%95%e7%a8%bf%e3%82%92%e5%89%8a%e9%99%a4%e3%81%99%e3%82%8b/feed/ 0
固定ページに投稿一覧を表示する http://nekyo.wp.xdomain.jp/2016/07/12/%e5%9b%ba%e5%ae%9a%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e6%8a%95%e7%a8%bf%e4%b8%80%e8%a6%a7%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b/ http://nekyo.wp.xdomain.jp/2016/07/12/%e5%9b%ba%e5%ae%9a%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e6%8a%95%e7%a8%bf%e4%b8%80%e8%a6%a7%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b/#respond Tue, 12 Jul 2016 01:43:37 +0000 http://nekyo.wp.xdomain.jp/?p=2026 続きを読む 固定ページに投稿一覧を表示する ]]> 方法は2つ
1、以下のコードを記述したテンプレートを用意して投稿一覧を表示したいページのテンプレートとして設定する。
2、または Exec-PHP など、PHP コードが書けるプラグインを使って固定ページに直接記述する。

 10,
  'paged' => $paged,
  'orderby' => 'post_date',
  'order' => 'DESC',
  'post_type' => 'post',
  'post_status' => 'publish'
);
$the_query = new WP_Query($args);
if ($the_query->have_posts()) :
  while ($the_query->have_posts()) :
    $the_query->the_post();
?>
 

max_num_pages > 1) { echo paginate_links(array( 'base' => get_pagenum_link(1) . '%_%', 'format' => 'page/%#%/', 'current' => max(1, $paged), 'total' => $the_query->max_num_pages )); } wp_reset_postdata(); ?>

ちなみに、投稿へのリンクは p=投稿ID を指定する。

投稿のタイトル

the_content の代わりに the_excerpt を使うと抜粋(55単語で切れて最後に […]) が表示される。

]]>
http://nekyo.wp.xdomain.jp/2016/07/12/%e5%9b%ba%e5%ae%9a%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e6%8a%95%e7%a8%bf%e4%b8%80%e8%a6%a7%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b/feed/ 0
ACFの入力欄が全てに表示されてしまう。 http://nekyo.wp.xdomain.jp/2016/07/08/acf%e3%81%ae%e5%85%a5%e5%8a%9b%e6%ac%84%e3%81%8c%e5%85%a8%e3%81%a6%e3%81%ab%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%a6%e3%81%97%e3%81%be%e3%81%86%e3%80%82/ http://nekyo.wp.xdomain.jp/2016/07/08/acf%e3%81%ae%e5%85%a5%e5%8a%9b%e6%ac%84%e3%81%8c%e5%85%a8%e3%81%a6%e3%81%ab%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%a6%e3%81%97%e3%81%be%e3%81%86%e3%80%82/#comments Fri, 08 Jul 2016 07:04:08 +0000 http://nekyo.wp.xdomain.jp/?p=2025 続きを読む ACFの入力欄が全てに表示されてしまう。 ]]> プラグイン内で add_action(‘init’ … ) にフックすると function.php に記述したのと同等になるので、
Advanced Custom Fields でエクスポートした php コードを追記したところ
管理画面の全ての入力画面に、追加したカスタムフィールドの入力欄が表示されるようになってしまった。
しかも、ローディングアイコンのまま、入力欄は表示されない。

原因は

if(function_exists("register_field_group"))
{
    register_field_group(array (
        'id' => 'acf_%e5%95%86%e5%93%81',
        'title' => 'タイトル',
        'fields' => array (
                   :

と、ID が化けていたため。ここを

'id' => 'acf_additional-custom-fields',

の様に書き換えてやれば正しく表示されるようになった。

そんなのわからんわ(笑)

]]>
http://nekyo.wp.xdomain.jp/2016/07/08/acf%e3%81%ae%e5%85%a5%e5%8a%9b%e6%ac%84%e3%81%8c%e5%85%a8%e3%81%a6%e3%81%ab%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%a6%e3%81%97%e3%81%be%e3%81%86%e3%80%82/feed/ 1
カスタムフィールドの使い方 http://nekyo.wp.xdomain.jp/2016/06/22/%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%81%ae%e4%bd%bf%e3%81%84%e6%96%b9/ http://nekyo.wp.xdomain.jp/2016/06/22/%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%81%ae%e4%bd%bf%e3%81%84%e6%96%b9/#respond Wed, 22 Jun 2016 06:04:36 +0000 http://nekyo.wp.xdomain.jp/?p=2016 続きを読む カスタムフィールドの使い方 ]]> WordPress はカスタムフィールドという便利な機能があるが、ちょっと触らないとすぐ忘れてしまうので備忘録的にまとめておく。

Custom Post Type UI

カスタムポストタイプを追加できるプラグイン。例えば「商品」のようなものを投稿と同列に作ることができる。
[CPT UI] > [Add/Edit Post Types] > [Add New Post Type] で追加 / [Edit Post Types] で編集。
「商品」というカスタムポストタイプを作る場合は
Post Type Slug:product
Plural Label:商品
Singular Label:商品
の様に指定する。後はほぼデフォルトでOK。
※ 何故Plural Label とSimgular Label があるかというと英語は複数形があるため。日本語では関係ない。
Supports にチェックしたものが新規追加/編集欄で表示される。
何も表示しない場合は明示的に None をチェック。
アイコンを替えたい場合は Menu Iconダッシュアイコンクラス名 を指定する。
例えばカートアイコンを指定するなら Menu Icon
特にカテゴリーやタグを追加したい場合は Bult-in Taxonomies にチェックする。

Advanced Custom Fields

カスタムフィールドを追加するプラグイン。
[カスタムフィールド] > [新規追加] で新規追加 / [編集] で編集。
先ほど作った「商品」に「在庫数」というフィールドを追加する場合は
Show this field group ifを指定する。
[+フィールドを追加] で在庫フィールドを追加する。名前は number とか。

ユーザ一覧から選択させたい場合は、フィールドタイプ:ユーザー を指定する。
例えば上で作った商品を別のカスタムポストタイプから選択させたい場合は
フィールドタイプ:投稿オブジェクト / 投稿タイプ:product を指定する。

Admin Columns

投稿一覧画面のカラムを編集するプラグイン。
[設定] > [Admin Columns] でカスタム投稿タイプを選択して使う。
例えば商品名を表示する場合は
タイプ:カスタムフィールド
ラベル:商品
カスタムフィールド:product
フィールドタイプ:タイトル(Post ID’s)
の様に指定する。
ユーザの場合はフィールドタイプ:ユーザ名(User ID’s)になる。

カスタムポストタイプ、カスタムフィールドの使い方

こんな感じ

query_posts('post_type=product'); // カスタムポストタイプに product を指定
if (have_posts()):
while(have_posts()):
the_post();
the_title(); // 商品名
// echo get_the_title(get_the_ID()); // あるいはこっちの書き方でもOK
echo ' ' . get_post_meta(get_the_ID(), 'number', true) // 追加した在庫のフィールド値を取得
. "個\n";
endwhile;
endif;

カスタムポスト・フィールドは遅いと聞くけれど、確かにこのやり方だとクエリーが大量に発生するので
遅くなるだろうなあ。手っ取り早いは手っ取り早いんだけれどなあ。

]]>
http://nekyo.wp.xdomain.jp/2016/06/22/%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%81%ae%e4%bd%bf%e3%81%84%e6%96%b9/feed/ 0
remove_filter http://nekyo.wp.xdomain.jp/2016/06/21/remove_filter/ http://nekyo.wp.xdomain.jp/2016/06/21/remove_filter/#respond Tue, 21 Jun 2016 08:39:50 +0000 http://nekyo.wp.xdomain.jp/?p=2014 続きを読む remove_filter ]]> ヘッダーも何もない素のテキストを html 出力したいと思ってテンプレートを作ったけれど
勝手に改行に <br /> タグが付いたり <p> タグが付いてしまう。

そこで remove_all_filters(‘the_content’); でフィルターを削除すると
今度は Exec-PHP プラグインが効かない。(フィルターで実装してたのね。)

解決策は以下、wpautop フィルタを削除する。

これで <br /> も <p> も付かなくなったけれど、<?php … ?> は使える。
備忘録としてメモして置こう。

]]>
http://nekyo.wp.xdomain.jp/2016/06/21/remove_filter/feed/ 0
WordPressのURLを相対パスにする http://nekyo.wp.xdomain.jp/2016/04/01/wordpress%e3%81%aeurl%e3%82%92%e7%9b%b8%e5%af%be%e3%83%91%e3%82%b9%e3%81%ab%e3%81%99%e3%82%8b/ http://nekyo.wp.xdomain.jp/2016/04/01/wordpress%e3%81%aeurl%e3%82%92%e7%9b%b8%e5%af%be%e3%83%91%e3%82%b9%e3%81%ab%e3%81%99%e3%82%8b/#respond Fri, 01 Apr 2016 05:15:12 +0000 http://nekyo.wp.xdomain.jp/?p=1958 続きを読む WordPressのURLを相対パスにする ]]> Raspberry Pi に WordPress を入れた時に困ること、
それは WordPress は中のリンクを「絶対パス」で表示してしまうこと。
IP アドレス固定の据え置き型なら、これでも何の問題もないのだが
ラズパイの様に、手軽に持ち運んで DHCP で、都度 IP が振られるような利用シーンだと
途端にスタイルシートやリンクなどが辿れなくなってしまう。

「絶対パス」を「相対パス」に置き換えるには以下の対応をする。
テーマの編集で functions.php を編集する。
ファイルの最後に以下のコードを追記する。

// 絶対パス→相対パス変換
class relative_URI {
    function __construct() {
        add_action('get_header', array(&$this, 'get_header'), 1);
        add_action('wp_footer', array(&$this, 'wp_footer'), 99999);
    }
    function replace_relative_URI($content) {
        $home_url = trailingslashit(get_home_url('/'));
        $top_url = preg_replace('/^(https?:\/\/.+?)\/(.*)$/', '$1', $home_url);
        return str_replace($top_url, '', $content);
    }
    function get_header(){
        ob_start(array(&$this, 'replace_relative_URI'));
    }
    function wp_footer(){
       ob_end_flush();
    }
}
new relative_URI();

これでかなり持ち運びしやすくなったぞ。

その後の顛末

管理画面が絶対パスのままだった orz。こっちも相対パスにするにはフックを以下の様に修正する。

function __construct() {
        add_action('init', array(&$this, 'get_header'), 1);
        add_action('wp_footer',  array(&$this, 'wp_footer'), 99999);
        add_action('admin_footer', array(&$this, 'wp_footer'), 99999);
    }

init はフロントエンドでも管理画面でも呼び出される。
wp_footer はフロントエンドでのみ呼び出される。
admin_footer は管理画面でのみ呼び出される。

その後は、まあ大体問題なく使えるけれど、余裕があるなら wp_options の siteurl と home も相対パスにしておく。
例) http://localhost/wp → /wp

参考:
http://evm-label.com/2015/04/wordpress_path01/
http://2inc.org/blog/2012/02/03/1198/
テンプレートを開いたときに読み込まれるフックと順番

]]>
http://nekyo.wp.xdomain.jp/2016/04/01/wordpress%e3%81%aeurl%e3%82%92%e7%9b%b8%e5%af%be%e3%83%91%e3%82%b9%e3%81%ab%e3%81%99%e3%82%8b/feed/ 0