wordpressの初期設定のつまづきポイント

wordpressの引越しを実施

久々にwordpressの引越しを実施しました。
今回はapacheからnginxへ移行しPHPもバージョンアップしました。
ただその中でひっかかった部分があったので備忘録を記述します。

プラグインをインストールできない。

プラグインをインストールしようとするとFTPをもとまられるようになりました。
これは下記の2つの変更を行う必要があります。

wp-config.phpの編集

下記の一文をwp-config.phpに追加する必要があります。

define('FS_METHOD', 'direct');

ディレクトル所有者と権限の編集

wp-contentの所有者を変更しました。
通常apacheだとwww-dataとかになっていると思いますが、nginxで実行しているのでnginxに変更します。

chown -R nginx:nginx wp-content

権限の変更

さらにプラグインのディレクトリの権限の変更を行います。

chmod 0707 wp-content/upgrade
chmod 0707 wp-content/themes
chmod 0707 wp-content/plugins

ここまで入れて問題なく動いたのですがなぜかjetpackが動きません。

jetpackがうまく動かない?

jetpackの機能を有効化しようとしたら下記のようなエラーが出ました。

SyntaxError: Unexpected token < in JSON at position 0

jsエラーなのであれれと思いましたがこちら下記のサイトに行って個別に機能の有効化ができました。

/wp-admin/admin.php?page=jetpack_modules

wordpressをupdateできない。

下記のメッセージが表示された場合にはパーミッションの変更が必要です。

いくつかのファイルをコピーできないため、最新版のインストールができません。これはたいていの場合、ファイルのパーミッションが適切でないことが原因です
sudo chmod -R 707 wp-includes

プラグインを入れるのに失敗する

その他プラグインを入れたときにファイルをコピーできないとエラーがでたら下記のコマンドを実行してパーミッションの変更を行います。

sudo chmod -R 707 wp-includes

終わりに

wordpressは問題が発生しても調べればすぐに答えが出てなんとか解決することができました。
またちょくちょく個別のカスタマイズをしていきたいと思います。

wordpressカスタマイズの基本

ユニットテストデータ

https://github.com/jawordpressorg/theme-test-data-ja
wordpress importerが進まないときは下記の変更を加える。

wp-content/plugins/wordpress-importer/parsers.php
if ( false && extension_loaded( 'simplexml' ) ) {

デバッグをオンにしてエラーを表示

define('WP_DEBUG', true);

ファイルとの対応関係

パーツテンプレート
header.php => get_header();
footer.php => get_footer();
slug-name.php => get_template_part($slug,name);
固定ページ = page.php
投稿詳細ページ = single.php
フロントページ = front-page.php

パラメーター

パラメーター

name = サイト名
description = キャッチコピー
charset = 文字コード

ループ

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<p><a href="<?php the_permalink(); ?>"><?php the_title() ?></a></p>?>
<?php endwhile; ?>
<?php else : ?>
<p>記事がありませんでした</p>
<?php endif; ?>

アーカイブページ
ループ内の記事全てが表示される

シングルページ
ループ内でも1ページのみ表示

カスタムフィールド

the_meta();

ページ毎の条件分岐

is_home
is_front_page
is_singular

functions.php

プラグインと同様の効果を持つ

アイキャッチの有効化

add_theme_support(“post_thumbnails”)

カスタムフィールド

<?php the_meta(); ?>
<?php echo esc_html(get_post_meta($post->ID, 'フィールド名', true)) ?>

smart custom fields

smart custom fields

<?php scf::get('フィールド名'); ?>

カスタムクソノミー

custom post type ui

カスタムリンクの変更

httpd.conf

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

AllowOverride None → All に変更する。
※ ちゃんとvar/www/htmlのディレクトリ内担っている事を確認する事!!!!