2016-10-03 28 views
0

私は、投稿のタイトルのみが投稿のヘッダーに適用されるWordPressの画面に表示される方法を変更する方法を探しています。WordPressのカスタム投稿タイトル

投稿のタイトルに名前、性別、年齢を表示しようとしています。私が表示している名前は現在の投稿のタイトルです。私は表示目的でこれに性別と年齢を追加しようとしています。

私は現在のコードを使用しましたが、それは私のテーマのタイルを使用するすべてのものに適用され、これらのフィールドもメニュー項目に追加されます。 私は、テーマ内のPHPファイルのいずれかを編集していない、それを避けたい。ここで機能

経由でそれを行うには、私のコードです:それはすべて置き換えどこで

add_filter('the_title', function($title) { 
$gender = get_field('gender'); 
$dob = get_field('date_of_birth'); 
$birthday = new DateTime($dob); 
$interval = $birthday->diff(new DateTime); 
if ('babysitters' == get_post_type()) { 

$temp_title = $title; 

$bbstitle = $temp_title .', ' .$gender .', ' .$interval->y; 
return $bbstitle; 
} 
return $title; 

}); 

何をしていますこれらの追加のフィールドを持つタイトル、および更新されただけでなく、ポストヘッダー

答えて

0
<?php 
add_filter('the_title', 'new_title', 10, 2); 
function new_title($title, $id) { 
    if('babysitters' == get_post_type($id)){ 
     $gender = get_field('gender'); 
     $dob = get_field('date_of_birth'); 
     $birthday = new DateTime($dob); 
     $interval = $birthday->diff(new DateTime); 
     $newtitle = $title .', ' .$gender .', ' .$interval->y; 

    } 
    else{ 

     $newtitle = $title; 
    } 
    return $newtitle; 
} 
?> 
+0

これはうまくいきました。私は投稿IDでチェックしてみたように見えます! –

1

function text_domain_custom_title($title) { 
    global $post; 

    if ($post->post_type == 'babysitters') { 
     $gender = get_field('gender', $post->ID); 
     $dob = get_field('date_of_birth', $post->ID); 
     $birthday = new DateTime($dob); 
     $interval = $birthday->diff(new DateTime); 

     $bbstitle = $title . ', ' . $gender . ', ' . $interval->y; 
     return $bbstitle; 
    } else { 
     return $title; 
    } 
} 

add_filter('the_title', 'text_domain_custom_title', 10, 2); 

このコードは、アクティブな子テーマ(またはテーマ)のfunction.phpファイル、またはすべてのプラグインファイルにあります。

注:このコードはテストされていませんが、動作するはずです。


参考:私のテーマのメニュー項目は、もはやレンダリングなくなるよう

+0

この1つは、動作しませんでした。 –

+0

@BrettCanfield:私は自分のコードを更新し、これをチェックして、うまくいきます。 –

関連する問題