私的WordPressのススメ。

ブログ強化月間4記事目です。Reoです。

週5投稿が目標なのに本日8日にしてまだ4記事目。今日は2記事くらい更新しましょうかね!

 

次回からしばらくWordPressで自作プラグインを作って見た記事を書いていくつもりなのですが、その前に、まず今回はWordPressについて自分が思っていることを書いていこうと思います。

 

WordPressってなんだ!

さて、まずはWordPressってなんだってところから。

WordPress は美しいサイトやブログ、アプリを作るためのオープンソースソフトウェアです。

https://ja.wordpress.org/

 

WordPressとはめちゃくちゃ自由度の高いブログだ!という認識で多分オッケーです。

自分ではうまく説明できないのでサルワカさんのWordPressとは?初心者でも分かるように仕組みを図解を読んでみてください。

 

このうるおいらんどもWordPressを用いて作られています。

WordPressとは何かというのが何となくわかっているという程で、後はWordPressはいいぞというところを適当に語っていこうと思います。

 

WordPressとの出会い

私とWordPressの出会いは2014年頃でした。もう4年前の話ですね。むしろまだ4年です。

自分がまともにWeb制作を始めたばかりの頃で、プログラミングも授業でしかやったことがない程度の頃でした。

Web関係の勉強(html/css)を始めて、一番初めに自分の手で制作したのがこのブログでした。今とは名前も形も全然違いますが、ドメインは同じです。

何でしょうね、例えるなら大工見習いがまずは自分の家を建てたというところですかね。

 

初学者だったので、最初は苦戦しました。
というのも、WordPressは運営するのはとても楽なんですが、始めるのが結構面倒なんですよね。

例えば通常のブログサービス(はてなブログとかFC2とか)なら、新規登録をして、テンプレートを選んで、後はエディタで記事を書いていくだけで始められます。

WordPressの場合は、まずはサーバーを用意する必要があります。ここで結構ハードルが高いですよね。

あとはサーバー代等のお金が多少かかります。これもハードルが(ry

サーバーにWordPressがインストールされて、管理画面に入れる状態にまでなれば、他のブログサービスと同じように記事を書いていくだけです。デザインを自分で自作することもできますし、大量のテーマから選択することもできます。

 

お金はかかるし導入も難しそうだなと思うかもしれませんが、自分はあのときWordPressを始めていて本当に良かったと思っています。

ちなみに最初は、ロリポップ!でレンタルサーバーを借り、ムームードメインでドメインをとりました。月額250円ぐらいで、ドメインは1年間100円ぐらいです。

初期投資500円以内で始めることができます。

 

エンジニア初心者こそWordPress!

色々WordPressのいいところを頑張って長々書いていたんですが、先ほどのサルワカさんの記事にいいところは全部書いてありました。はい。

WordPress大好きマンなんですけど、意外とこう、好きなものって何が好きか明確じゃないことが多いよねっていう感じで、何が書きたいかわからん感じになってたので、エンジニア目線としてのWordPressのいいところを書いていこうと思います。(半分くらい書いてたの消した)

まぁ自分エンジニアなの!?って思ってるんですけど(

 

正直WordPressの立ち位置もわからんなーとは思っています。

最近はWordPressプラグインを作る人になりつつあるんですが、今これフロントエンドの作業してるのかサーバーサイドのことしてるのか、一体自分は何エンジニアなんだ!?ってなるんですよね。

フロントエンドの人はあんまりWordPress使うイメージもないですし。だからと言ってサーバーサイドの人が使うイメージもないなーって思っちゃって。普通にブロガーが多いんかな。

 

でも自分にとってはWordPressは、フロントエンドの勉強もサーバーサイドの勉強も両方できる最強ソフトウェアだと思っています。

 

HTML/CSS/PHPの勉強ができる

元々HTML/CSSから始めた人間なのですが、エンジニアってみんなHTML触れて当たり前みたいな風潮ありますよね。なんなんでしょうね。

そこでWordPressです。

WordPressは、通常のWebページのようにHTML/CSSだけではなく、PHPを用いて作ることになります。

リストを作るときにhtmlで通常

<ul>
    <li><a href="#">menu1</a></li>
    <li><a href="#">menu2</a></li>
    <li><a href="#">menu3</a></li>
    <li><a href="#">menu4</a></li>
    <li><a href="#">menu5</a></li>
</ul>

と書くリストがあった場合に、WordPressだとPHPが使えるので、

<ul>
    <?php for ($i = 1; $i <= 5; $i++ ) : ?>
        <li><a href="#">menu<?php echo $i; ?></a><li>
    <?php endforeach; ?>
</ul>

とかいう風にfor文が使えるので超便利ですね。(まぁあんまりこういう書き方はしませんが)

実際にこのブログの、

このメニューの部分のコードは

<ul>
    <?php wp_list_pages('title_li='); ?>
</ul>

こんだけで実装しています。便利な関数が用意されているんです。

 

フロントエンドの勉強ができる

当然JavaScriptも使うことができます。なんか色々Node.jsだったりVue.jsだったりも組み込むことができます。

まぁ〜〜〜自分はWordPressではほとんどJavaScript使ってこなかったので、やりたければいくらでもできるよって感じです。

 

サーバーサイドの勉強ができる

PHPってサーバーサイド言語ですからね!

でもWordPressのテーマ制作ではわりと用意された関数を使うだけで済むので、WordPressでPHP使ってるからPHPできるぞと思っていると、普通に他のところで痛い目にあいます。

でもPHPがある程度できるようになったらWordPressのテーマ制作でもかなり楽しくなりました。配列とか使えるところは使った方が楽な場合って多々ありますので。

データベースを直接いじることはまずないですが、MySQLも使っていますので、勉強しようと思えばできます。

 

レンタルサーバーやVPSが使えるようになる

WordPressは最初の導入ハードルとして、サーバーを用意する必要があります。

最初はFTP(CyberDuck)を使ってテーマを配置していました。そういうのを使う経験ができます。今はFTPソフトは使ってませんが。

用意するのがレンタルサーバーではなくVPS(例えばConohaVPS)だったら、コマンド操作等が必要になってきますので、その辺の勉強もできます。

 

コマンドの勉強もできるかも

現在はVVVというローカル環境を用いて、そっちでテーマ等を作成して、それを本番環境にデプロイしています。

VVV+WordMoveでWordPressのローカル環境を構築するぞッ!【Xserver】

【Conoha】WordMoveでローカル環境と本番環境を同期してみたぞいっ【VVV】

という記事も書いています。

 

VVVはCentOS という仮想環境で動いています。Linuxの一種です。

なので、最初の環境構築の時には結構ターミナルでコマンドポチポチ打たないとダメなんですよね。

自分はこの辺の作業で結構コマンドを覚えました。chmodとかpwdとかのコマンドもこの辺の作業で初めて覚えました。

 

Gitも使おう!

自分はGitは別のところで覚えましたが、最近ではWordPressのテーマもgitで管理しています。

これはWordPressに限らずですが、ちゃんとバージョン管理することを覚えることもできます。

 

技術メモを残そう!

あとやっぱり、なにより、ブログ書こう。

プログラミングを始めた時ってとにかくいろんなところでハマってしまいます。

自分とかあれもこれも独学なので、始めた時はコード打ってるより圧倒的に調べている時間のが長かったです。今も初めてやることは調べる時間の方が圧倒的に長いです。

例えばつい最近書いた「【WordPress】メディアライブラリ の画像IDを取得する」といったメモ記事があります。

これなんか、リンク先のコードとほぼほぼ一緒なんですよね。一言メモ自体そういうものをメモするための場所にしているんですが。

すべてそこの記事コピペで解決するのに何故これをブログ記事として残すのか、という理由は以下です。

  1. 英語記事なので敬遠するそれだけで敬遠する日本人は多そう
  2. 調べた時にすぐに出てこなかった

自分はどちらかが当てはまればできるだけ書き残したいなーと思っています。

特に2の調べた時にすぐに出てこなかった!という場合はメモだけでも書くといいと思います。

その時は是非実際に検索したワードを含めるようにしましょう。おそらく同じ検索ワードで検索してる人って結構いると思います。

 

色々偉そうなことは言いましたが、でもやっぱり何より自分のタメになります。

このブログなんかは多分一番利用している人間は自分なんじゃないかな?ってぐらい、アレなんだっけっていうときに役に立ってくれています。

 

 

大体こんな感じですかね。

ただ、これらの勉強をしなくてもWordPressは使うことができます。WordPressじゃなくてもこれらの勉強はできます。

でもこうやって書くと、自分の今持っている技術の大方はこのブログ(WordPress)から得たものだなーと感じました。

 

プログラミング初学者はみんなWordPress始めようぜ

自分がこうしてWordPress初めて数年。

iOSエンジニアとして拾われたチームで最近頂いている仕事の半分はWordPressです。(プラグイン作成ばっかりですけどネ)

そのiOSエンジニアとして拾われたのもこのブログからです。

 

わりとWordPressを使っている人って、プログラミングはやらないブロガーが多い気がします。あとはコーポレートサイトだったり、メディア運営だったり、アフィリエイトだったりが多い気がしますね。

使っている人は多いはずなので、わりとWordPressのテーマ作成だったり、WordPressを使いやすいようにするプラグインを作ることも需要があるんだと思います。

 

でも自由度の高いWordPressだからこそエンジニアに使って欲しいなーと思うんです。まぁエンジニアって文章書くのが苦手な人多そうですし、WordPressできるエンジニアの人が自分でブログ運営とかはあんまりしなさそうねとは思うんですけど。(偏見)

んでですね、既にエンジニアとして働いている人とかは特に技術ブログ書くことってあんまりないと思うんですよね。下手したらコンプライアンスが〜〜〜ってなりますからね。

 

最近割と駆け出しエンジニアですっていうツイートを見かけたりするんですが、恐らくそう言ってる人たちって独学なんじゃないかなーって思ってて。

そういう人たちこそ技術ブログを持ってほしいですね〜〜〜。

自分もSwift始めたばっかりの時はハマりまくって、解決策見つけたらブログ書くって感じでしたが、最近Swiftの方は調べるより自分で考えてる時間のが長いので、そうなると意外とブログって書かなくなっちゃうんですよね(´・ω・`)

 

そして、技術ブログ始めてみようってなったときに、WordPressっていう選択肢を取ってくれる人がもっと増えればいいなと思うわけです。

 

そんな感じで、長くなりましたが。WordPressはいいぞ!

 

 

自分は今一体何エンジニアなのだろうか。エンジニアなのだろうか。わからない。

次からはWordPressプラグインについて書いていきますよい〜

WordPress
コメントは認証制です。詳しくは下記の注意をお読みください。お気軽にコメントお願いします!

Write a Comment

コメント時の注意

「Twitter」「Facebook」「Google+」「WordPress」のいずれかのアカウントをお持ちの方は各アカウントと連携することでコメントできます。 コメントしたことはSNSに流れませんので、アカウントをお持ちの方はこちらの方法でコメントを投稿して下さると嬉しいです。 アカウントをお持ちでない方はメールアドレスで投稿することができます。 初回コメント時は承認後に表示されます。

Related Memo...

【WordPress】メディアライブラリ の画像IDを取得する

WordPressのメディアライブラリ にアップロードされた画像IDを取得する方法です。

例えば6件取得してギャラリーで表示するとき。

$ids = get_posts( 
    array(
        'post_type'      => 'attachment', 
        'post_mime_type' => 'image', 
        'post_status'    => 'inherit', 
        'posts_per_page' => 6,
        'fields'         => 'ids',
    ) 
);

$ids_str = '';
foreach ( $ids as $id ) {
    $ids_str .= $id . ',';
}

$ids_str = rtrim($ids_str, ',');

// ショートコードでギャラリーを表示
echo do_shortcode( '[gallery ids="' . $ids .'"]' );

意外と便利なのでは!

 

WordPress

【WordPress】プラグイン化したカスタム投稿をテーマ内で使うとき

通常テーマ内でカスタム投稿を表示させる時に

$args = array( "posts_per_page" => 5,
        "post_type" => 'news'
    );
$the_query = new WP_Query( $args );
if($posts):

と書けば表示されるのに、プラグイン化していたので表示されなかった話。

 

functions.phpでカスタム投稿を追加している場合は必要ないが、newsというカスタム投稿をプラグイン化していたので、以下の記述が必要でした。

    public function __construct() {
        add_action( 'pre_get_posts', array($this, 'add_my_post_types_to_query') );
    }

    // queryにnewsをセットする
    function add_my_post_types_to_query( $query ) {
        if ( is_home() && $query->is_main_query() )
            $query->set( 'post_type', array( 'post', 'page', 'news' ) );
        return $query;
    }

WordPressプラグインの作り方は、また後日ちゃんとした記事にしたいと思ってます。今回はとりあえず忘れそうなのでメモだけで失礼。

WordPress

WordPressで現在のカテゴリから親カテゴリ/祖先カテゴリのスラッグを取得

//現在のカテゴリを取得
$categories = get_the_category($post->ID);
$category_slugs = array();
foreach($categories as $category){
    $cat = $category;
    array_push($category_slugs,$cat->slug);
    //親のカテゴリがなくなるまで回す
    while ($cat->parent) {
        $cat_parent_id = $cat->parent;
        $cat = get_category($cat_parent_id);
        array_push($category_slugs,$cat->slug);
    }
}

わりと頑張ってPHP書いてる。

WordPress
more