質問

デフォルトでは、ブログページ内のノードリンクがblog_usernames_blog(管理者のブログ)が含まれ、(もっと読む)comment_add(新しいコメントを追加)し、node_read_moreます。

私は彼らの最初の2を取り除くために、そしてnode_read_moreでテキストを変更する必要があります。

私はこのコンテンツで、私のテーマにtemplate.phpに$themenamepreprocess_nodeという名前の関数を作成しました

function mytheme_preprocess_node(&$vars, $hook){
    $node = $vars['node'];
    //blog node, not in full node page
    if($vars['node']->type == 'blog' AND !$vars['page']){
        $vars['node']->links['node_read_more']['title'] = t('My custom read more here');
        unset($vars['node']->links['blog_usernames_blog']);
        unset($vars['node']->links['comment_add']);
    }
    //debug:
    echo "<!-- DEBUG\n";
    print_r($vars['node']->links);
    echo "\n-->";
}

しかし、それは仕事をdoesntの。私は、関数の最後に$vars['node']->linksを印刷するとき、リンク列は、私はそれをしたいとまったく同じです。ページがレンダリングされるときには、古いデフォルトのリンクが示されている。

なぜ? どのようにすることができます私は単にいくつかのコンテンツタイプのみノードリストページ内のテーマノードリンク、テーマ設定機能付き?

p.s:私はすべて試してみる前に、キャッシュやテーマレジストリをクリア;)

役に立ちましたか?

解決

まず:あなたは、この前処理機能は、それぞれ、すべての場所に呼び出されます他、$フックにテストする必要がありますそれはあなたが大規模なサーバー上の小さなサイトを実行した場合でも、あなたのサイトをダウンさせるでしょう。

二:。しますprint_r場合は、必ずコード/で/ RAN、テーマレジストリを心配する必要のために、その後、正しいリンクを表示します。

さて、あなたはおそらく間違っテーマフックを見ています。 theme_linksは、あなたが望むだろうものです。 http://api.drupal.org/api/function/theme_links/5

function mytheme_preprocess_links(&$vars, $hook){
    if ($hook == 'links') {
      var_dump($vars);
      unset($vars['links']['blog_usernames_blog']);
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top