WordPressでカスタムフィールドを使用するための10のヒント

この記事は、Smashing Magazineで公開された記事「WordPressのカスタムフィールドハック」の要約されたかなり無料の翻訳です(元のリンクは最後にあります)。 WordPressでカスタムフィールドを使用する10の興味深い方法がリストされています。





1.投稿の終了日を設定します。

この手法は、限られた時間だけ投稿を表示する必要がある場合、投稿公開の終了日を設定するのに役立ちます。

このトピックでは、出力ループを次のものに置き換えます。



<?php

if (have_posts()) :

while (have_posts()) : the_post(); ?>

$expirationtime = get_post_custom_values('expiration');

if (is_array($expirationtime)) {

$expirestring = implode($expirationtime);

}

$secondsbetween = strtotime($expirestring)-time();

if ( $secondsbetween > 0 ) {

// For example...

the_title();

the_excerpt();

}

endwhile;

endif;

?>







投稿を作成するとき、 有効フィールドの値がmm / dd / yyyy 00:00:00の形式の有効期限キーとカスタムフィールドが作成されます。 指定した日時以降、投稿は表示されなくなります。



2.メインページに投稿を表示します。

この手法は、メインページに投稿を表示する方法を選択するのに役立ちます-全体またはお知らせのみ。 前の方法と同様に、標準出力ループを次のものに置き換える必要があります。



<?php if (have_posts()) :

while (have_posts()) : the_post();

$customField = get_post_custom_values("full");

if (isset($customField[0])) {

//Custom field is set, display a full post

the_title();

the_content();

} else {

// No custom field set, let's display an excerpt

the_title();

the_excerpt();

endwhile;

endif;

?>







このコードは、すべての投稿をお知らせの形式で表示します。 選択した投稿を完全に表示するには、フルキーでフィールドを作成し、任意の値に設定する必要があります。



3.投稿に音楽とムードを表示します。

LiveJournalユーザーは、WordPressでまだ利用できない投稿を書くときに、現在の音楽とムードを表示する2つの便利なオプションがあります。 それらをWPに追加するのは非常に簡単です-現在のトピックのsingle.phpまたはindex.phpファイルに次のコードを追加する必要があります。



$customField = get_post_custom_values("mood");

if (isset($customField[0])) {

echo "Mood: ".$customField[0];

}







投稿では、ムードキーを持つフィールドを作成し、値としてムードを入力します。



4.投稿にMETAの説明を追加します。

META情報は、以前ほど検索エンジンにとって重要ではありませんが、投稿にMETAの説明を付けても害はありません。

header.phpファイルで、このコードを<head>タグと</ head>タグの間の任意の場所に追加します



<meta name="description" content="

<?php if ( (is_home()) || (is_front_page()) ) {

echo ('Your main description goes here');

} elseif(is_category()) {

echo category_description();

} elseif(is_tag()) {

echo '-tag archive page for this blog' . single_tag_title();

} elseif(is_month()) {

echo 'archive page for this blog' . the_time('F, Y');

} else {

echo get_post_meta($post->ID, "Metadescription", true);

}?>">

</meta>







このトリックでは、WordPressタグを使用してメタ記述を生成します。 カテゴリ、タグ、アーカイブ、およびメインページのページは、静的なメタ情報を使用します。 コードの3行目、7行目、および9行目を編集して、独自の値を定義します。 エントリの場合、 メタ記述フィールドを作成し、値を入力します。



5.外部リソースへのリンク。

見出し自体へのリンクなしで、「直接」外部リソースへの見出しにリンクを作成する方法(Habré-約Translで発生します)? そのような審美的な方法があります。 最初に、次のコードをfunctions.phpファイルに挿入します。



function print_post_title() {

global $post;

$thePostID = $post->ID;

$post_id = get_post($thePostID);

$title = $post_id->post_title;

$perm = get_permalink($post_id);

$post_keys = array(); $post_val = array();

$post_keys = get_post_custom_keys($thePostID);

if (!emptyempty($post_keys)) {

foreach ($post_keys as $pkey) {

if ($pkey=='url1' || $pkey=='title_url' || $pkey=='url_title') {

$post_val = get_post_custom_values($pkey);

}

}

if (emptyempty($post_val)) {

$link = $perm;

} else {

$link = $post_val[0];

}

} else {

$link = $perm;

}

echo '<h2><a href="'.$link.'" rel="bookmark" title="'.$title.'">'.$title.'</a></h2>';

}







その後、index.phpファイルで、標準ヘッダー出力コード:



<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <v?php the_title(); ?>">< ?php the_title(); ?></a></h2>









に置き換える

<?php print_post_title() ?>







ここで、投稿を作成するときに、値がurl1またはtitle_urlまたはurl_titleのフィールドを作成し、外部リソースへのリンクを値として入力する必要があります。 この場合の投稿タイトルは、通常のように投稿自体へのリンクではなく、外部リソースへのリンクになります(もう一度、Habr-約Transl。を思い出してください)。 フィールド値が見つからない場合、タイトルは通常、投稿自体につながります。



6.組み込みのCSSスタイル。

投稿に追加のCSSスタイルを追加する必要がある場合があります。 もちろん、いつでも組み込み(インライン)を使用できますが、あまり便利ではない場合があります。 この手法は、追加のCSSクラスを簡単に作成し、ブログタイトルに埋め込むのに役立ちます。

header.phpファイルで、<head>タグと</ head>タグの間にコードを貼り付けます

<?php if (is_single()) {

$css = get_post_meta($post->ID, 'css', true);

if (!emptyempty($css)) { ?>

<style type="text/css">

<?php echo $css; ?>

</style><style>

< ?php }

} ?>

</style>







エントリを作成するときに、 cssフィールドを作成し、値として目的のCSSを入力します。 とても簡単!



7. <TITLE>のオーバーライド

タイトルタグはSEOにとって非常に重要であり、ブログへのトラフィックを促進します。 ところで、ほとんどのWPテーマには、最適化されたタイトルタグがありません。 All in One SEO Packなどのサードパーティプラグインは問題の解決に役立ちますが、これはカスタムフィールドを使用して実現することもできます。

header.phpファイルで、<title> </ title>のコードを次のように置き換えます



<title>

<?php if (is_home () ) {

bloginfo('name');

} elseif ( is_category() ) {

single_cat_title(); echo ' - ' ; bloginfo('name');

} elseif (is_single() ) {

$customField = get_post_custom_values("title");

if (isset($customField[0])) {

echo $customField[0];

} else {

single_post_title();

}

} elseif (is_page() ) {

bloginfo('name'); echo ': '; single_post_title();

} else {

wp_title('',true);

} ?>

</title>







投稿を作成するときに、 タイトルフィールドを作成し、目的の値を入力します。



8.検索エンジンによる特定の投稿のインデックス作成をブロックします。

検索エンジンが特定のエントリ(非常に個人的なものなど)のインデックスを作成するのを防ぎたいと思ったことはありませんか? しかし同時に、普通の読者に読むことを許可します。 それは助けを借りれば十分に簡単です...あなたはすでに何を理解しました。

最初に、ユビキタス検索エンジンから非表示にする投稿IDを見つける必要があります。 この例では、ID 17を使用します。

header.phpファイルで、このコードを<head>タグと</ head>タグの間の任意の場所に追加します



<?php $cf = get_post_meta($post->ID, 'noindex', true);

if (!emptyempty($cf)) {

echo '/>';

}

?>







カスタムnoindexフィールドと値としての投稿IDは、検索エンジンがこの投稿のコンテンツにインデックスを付けることを防ぎます。



9.任意のフィールドの値を取得または印刷します。

現在、多くのカスタムフィールドを使用しています。 すべての値を自動的に取得するのはどうですか? 次のコードがfunctions.phpファイルに挿入されます。



function get_custom_field_value($szKey, $bPrint = false) {

global $post;

$szValue = get_post_meta($post->ID, $szKey, true);

if ( $bPrint == false ) return $szValue; else echo $szValue;

}









ここで、関数を呼び出してフィールドの値を取得するには、次のコードを使用します。



<?php if ( function_exists('get_custom_field_value') ){

get_custom_field_value('featured_image', true);

} ?>







まず、PHPのfunction_exists()関数を使用して、 get_custom_field_value関数トピックで定義されていることを確認します。 関数の最初の引数はフィールドの名前(この場合featured_image )で、2番目は値を取得する(true)か、将来使用するために呼び出す(false)ことです。



10.必要な場合にのみ、ボタン「Digg This」の出力。

[Digg This]ボタンを使用して、Diggからトラフィックを取得することは非常に便利で良い考えです。 しかし、このボタンはすべての投稿に必要ですか? たとえば、Diggを使用してサイトへの変更を通知する価値はほとんどありません。 ユーザーフィールドが再び役立ちます。

single.phpファイルを開き、「Digg This」ボタンを表示する場所に貼り付けます。



<?php $cf = get_post_meta($post->ID, 'digg', true);

if (!emptyempty($cf)) {

echo 'http://digg.com/tools/diggthis.js" type="text/javascript">'}

?>







任意の値を持つカスタムdiggフィールドには、Digg Thisボタンが表示されます(コードで使用されるJavaScriptは、Digg自体が提供するボタンを表示します)。 値がない場合、ボタンは表示されません。



ボーナス 投稿の横にサムネイルを表示します。

これはかなりよく知られた手法であり、多くの人に使用されています。 しかし、ページの投稿の横にサムネイルを表示することの美しさをまだ知らない人もいます。



1. PhotoShopやGimpなどのエディターでデフォルトの画像を作成します。 与えられた例のサイズは200x200ですが、もちろんあなたの裁量です。 画像にdefault.gifという名前を付けて、現在のテーマの画像フォルダにアップロードします。

2. index.phpファイルで、サムネイルを表示する場所にこのコードを貼り付けます。



<?php $postimageurl = get_post_meta($post->ID, 'post-img', true);

if ($postimageurl) {

?>

<a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php echo $postimageurl; ?/>" alt="Post Pic" width="200" height="200" /></a>

<?php } else { ?>

<a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php bloginfo('template_url'); ?/>/images/wprecipes.gif" alt="Screenshot" width="200" height="200" /></a>

< ?php } ?>







3.書き込み時に、 post-imgキーと、サムネイルとして表示する画像へのパスを値として使用して、カスタムフィールドを作成します。



ブログの「オリジナル翻訳」 ...



All Articles