WordPressカスタマイズ

WordPress記事からPHPファイルを呼び出す方法

WordPressを使っていると、投稿記事や固定ページでもPHPコードやPHPファイルを使いたいことがありますよね。

プラグインで対応できたらと思ったのですが、いまいちいい感じのものが見つからなかったので、今回はコード書き替えで対応します。

ショートコードを使って、PHPファイルを呼び出す方法をご紹介。


 

  • まず、「functions.php」に以下のコードを追加して、ショートコードを設定します。

function shortcode_phpinc( $atts ) {
    extract(
        shortcode_atts(
            array(
                'file' => 'default'
            ),
            $atts
        )
    );

    ob_start();
    include(get_theme_root() . '/' . get_template() . "/$file.php");
    return ob_get_clean();
}
add_shortcode('phpinc', 'shortcode_phpinc');

これで、PHPファイルをショートコードで呼ぶ出すことができるようになります。

  • 該当の記事にショートコードを書き込みます。
[phpinc file="ファイル名(拡張子無し)"]

* [ ] は半角にしてください。

これだけで完了です。


 

追記:『Arconix Shortcodes』というプラグインを入れていると、さらにウィジェットからもショートコードで呼び出すことが可能になります。

Twenty Fourteen で 「おすすめコンテンツ」を使うと、その記事が投稿記事リスト欄から消えてしまうのを戻す方法

IMG_7133

Twenty Fourteen で 「おすすめコンテンツ」も、その記事が投稿記事リスト欄から消えてしまわないようにする方法です。

なんでこんな不思議な仕様にしたんでしょうか。 「おすすめコンテンツ」にするとむしろリストから消えてしまうのでは、すごく読みづらくなるように思います。

そこで、「おすすめコンテンツ」もふつうに投稿記事欄に並ぶようにカスタマイズします。

「inc」ディレクトリにある方の「featured-content.php」の268行目あたりを1行変更。(別の場所にも「featured-content.php」があるのでご注意)

    $query->set( 'post__not_in', $featured ); 

これを

//  $query->set( 'post__not_in', $featured ); 

コメントアウトする(もしくは消す)だけで行けました。案外簡単な対応でいけてよかったですが、これならダッシュボードに選択ボタンを付けて欲しかったですね。

Twenty Fourteenは良いテーマなのですが、こういうところがちょっと荒いかなと思うところがありますね。シンプルなので改造もしやすいですけども。

WordPressで『メディアを挿入』のデフォルトリンク先を「なし」にする方法

WordPressで、『メディアを挿入』をするとき、リンク先のデフォルトが『メディアファイル』になってますよね。

ですが、例えば大きめのファイルをアップした場合、画像をクリックするとファイルがでかでかと開いてしまい困ったことになります。

プラグインなどで対策する方法もありますが、この手の対策をしない場合、リンク先は『なし』の方が見やすいかと思います。

そこで、このデフォルト設定を『なし』にする方法をご紹介。


WordPressには隠しオプション設定ページがありまして、管理画面にログインした状態のまま、

http://(インストールディレクトリ中略)/wp-admin/options.php

にブラウザからアクセスします。すると

none

『image_default_link_type』とい項目がありますのでここを『none』にして、「変更を保存」します。

これで、『メディアを挿入』時のデフォルトのリンク先が『なし』になります。

『twentyfourteen』のアイキャッチ画像の消し方

テーマ「twentyfourteen」を使用しています。

トップページ用にアイキャッチ画像を設定したいのですが、アイキャッチ画像を設定すると、困ったことに各記事の上にも同じ画像が表示されてしまいます。

きれいに表示されるならいいのですが、なぜかタイトルと重なっておかしな表示のされ方になります。

イメージ2873

こんなように画像にタイトルがめり込んだ形になってしまいます。上手く使いこなせば綺麗に調整することもできるとは思うのですが、毎回調整するのは正直面倒です。

そこでこの表示を消してしまう方法を紹介。

「content.php」にある

 <?php twentyfourteen_post_thumbnail(); ?> 

これを消去します。これで各記事の上部分のアイキャッチ画像は表示されなくなります。

WordPressコメント入力欄のシンプル化カスタマイズ

IMG_6433

今回は入力欄の改造のみ。comments.phpをいじる方法ではなく、簡単にできるやり方でやります。

  • 「メールアドレス」入力欄と「ウェブサイト」入力欄を消去。
  • 「名前」と「コメント」欄のみのシンプルな形にします。
  • ついでに周りの注意書きや文字類も消去。
  • ごちゃごちゃ禁止!

☆functions.phpに書き込むタイプ

▼コメント入力欄の「ウェブサイト」と「メールアドレス」を消去

functions.phpに以下を追加します。一番下が分かりやすいです。

add_filter('comment_form_default_fields', 'mytheme_remove_url');
function mytheme_remove_url($arg) {
$arg['url'] = '';
$arg['email'] = '';
return $arg;
}

これだけです。と思ったのですが、注意点が1つ!

設定>ディスカッションの「名前とメールアドレスの入力を必須にする」のチェックを外しておいてください。これを忘れるとメールアドレスが書き込めないため、コメントすることができなくなります。

また、functions.phpをさわるときは(phpファイルをいじるとき全般にですけども)、事前にバックアップを取っておきましょう。

最終行の「}」を書き込み忘れたりすると、シンタックスエラーが出て最悪WordPressから書き込みできなくなったりします!<やらかしたことがあるらしい(涙)

☆CSSに書き込むタイプ

以下をCSSファイルに書き込みます。場所は下の方ならどこでも良いですが、Twenty fourteen ならstyle.cssの6.14の一番下あたりに書いておくと後々も分かりやすいはずです。

▼下の「次のHTMLタグと属性が使えます」うんたらを消去

.form-allowed-tags{display:none;}

▼「コメントを残す」を消去

.comment-reply-title{display:none;}

▼「メールアドレスが公開されることはありません。」を消去

.comment-notes{display:none;}

▼コメント欄のタイトルを消去

.comments-title{display:none;}

これだけです。

テーマによってはこちらの方法で「メールアドレス」入力欄と「ウェブサイト」欄も消去できるようですが、Twenty fourteenではできませんでした。また、Twenty fourteen以外のテーマではcssのclass名が上記と多少違ってる可能性があります。

WordPressは、英語のものを日本語化ファイルで変換するという方法をとってるので、この手の文字を消すのが案外ややこしいですよね。そこでCSSを使って有無を言わさず消してみました。

◆結論のようなもの

  • WordPressコメント欄の本格カスタマイズはけっこうややこしい
  • そして、プラグインはたいてい多機能型
  • でも今回のような大ざっぱなものは簡単