web-dev-qa-db-ja.com

Functions.phpでグローバル変数を設定する方法

私は記事の特徴的な画像のURLをエコーできるようにしたいと思っています、そして私が私のフロントページテンプレートのループにそれを入れるときうまくいく以下を見つけたウェブを見た後.

<?php $thumbSmall = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'small' );
$urlSmall = $thumbSmall['0']; ?>

<?php echo $urlSmall; ?>

ただし、フロントページのテンプレート以外の場所で変数$ urlSmallを使用したい場合、これが私の限られたコーディングスキルのおかげです。ペーストをコピーしようとしました

wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'small' );
$urlSmall = $thumbSmall['0'];

私のfunctions.phpにそれはうまくいきませんでした。私はこれらの変数が世界的に認識されることを必要としています。私はここで何をしますか?ある種の機能を書く?

1
Josef Ulander

スニペットを投稿の投稿サムネイルのURLを返す関数に変えることができます。

function wpse81577_get_small_thumb_url( $post_id ) {
    $thumbSmall = wp_get_attachment_image_src( get_post_thumbnail_id( $post_id ), 'small' );
    return $thumbSmall['0'];
}

使い方、投稿のIDを指定する:

<?php echo wpse81577_get_small_thumb_url( 59 ); ?>
8
diggy

純粋なPHP質問、本当に。

global $urlSmall;
$urlSmall = $thumbSmall['0'];

初期化時に globalキーワード を使用して変数を宣言すると、それ以降は有効になります。あなたはそれを改造することができます。

global $urlSmall;
var_dump($urlSmall);

キー/値を$GLOBALS配列に直接代入することによっても同じことができます。

$GLOBALS['urlSmall'] = $thumbSmall['0'];

それが質問に対する最も直接的な答えのようです。

私はこれらの変数が世界的に認識されることを必要としています。私はここで何をしますか?

ただし、データを処理するためのより良い方法があるかもしれません。

3
s_ha_dum