3

私はプラグインをコーディングしており、短いコードを使用してページ コンテンツをレンダリングしています。ページのタイトルを変更したい。私はこれを使用しました:

// Change the title of the page of the charts to add the current month. 
add_filter('the_title', 'charts_title', 10, 2);
function charts_title($title, $id) { 
  $title .= ' ' . date('F Y');
  return $title;
}

ただし、すべての投稿とページに対してそれを行います。私が作成したショートコードを含むページに対してのみそれを行うことはできますか? 私はそれをやろうとしましたが、うまくいきません。

add_shortcode('charts-vote', 'charts_vote');
function charts_vote($atts) {
    // Add the filter only in the short code function callback.
    add_filter('the_title', 'charts_title', 10, 2);   

    // ... // 
    return $content;
}

誰か助けてくれませんか?

4

1 に答える 1

2

セットアップの詳細でショートコードの確認が必要になる場合があることは承知していますが、そのためにカスタム フィールドを使用できる可能性があります。

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

function charts_title_so_15312385( $title, $post_id ) 
{ 
    // Admin area, bail out
    if( is_admin() )
        return $title;

    // Custom field not set, bail out
    $mod_title = get_post_meta( $post_id, 'mod_title', true );
    if( !$mod_title )
        return $title;

    // Ok, modify title
    $title .= ' ' . date( 'F Y' );
    return $title;
}

ショートコードは、拡張構成のためにカスタム フィールドと「対話」することさえできます。

使いやすくするために、カスタム メタ ボックスを作成するか、 Advanced Custom Fieldsなどのプラグインを使用できます。

于 2013-03-09T19:30:15.193 に答える