0

get_archive_linksWordPressの関数によって出力されるアーカイブ後のリンクにクラスを適用する必要があります。私はこれから、を変更することによってこれを達成することができます/wp-includes/general-template.php (line 842)

$link_html = "\t<li>$before<a href='$url' title='$title_text'>$text</a>$after</li>\n";

これに:

$link_html = "\t<li>$before<a class='hello' href='$url' title='$title_text'>$text</a>$after</li>\n";

コアファイルを変更せずに、これをスマートな方法で実現するには、テーマのfunctions.phpに何らかのフィルターを追加する必要があると確信しています。方法がわかりません。どんなガイダンスも素晴らしいでしょう。

編集:これがgeneral-template.phpからの変更されていない関数全体です:

function get_archives_link($url, $text, $format = 'html', $before = '', $after = '') {
$text = wptexturize($text);
$title_text = esc_attr($text);
$url = esc_url($url);

if ('link' == $format)
    $link_html = "\t<link rel='archives' title='$title_text' href='$url' />\n";
elseif ('option' == $format)
    $link_html = "\t<option value='$url'>$before $text $after</option>\n";
elseif ('html' == $format)
    $link_html = "\t<li>$before<a href='$url' title='$title_text'>$text</a>$after</li>\n";
else // custom
    $link_html = "\t$before<a href='$url' title='$title_text'>$text</a>$after\n";

$link_html = apply_filters( 'get_archives_link', $link_html );

return $link_html;

}

4

2 に答える 2

1

それで、このページのおかげで、これを行う方法を理解しました。

これを投げるだけですfunctions.php

// Filter to add nofollow attribute
function nofollow_archives($link_html) {
return str_replace('<a href=', '<a rel="nofollow" href=',  $link_html);
}

次に、必要な場所で新しい関数を呼び出します。

<?php add_filter('get_archives_link', 'nofollow_archives'); ?>
<?php wp_get_archives('type=monthly'); ?>

この例は明らかにnofollowrelタグを追加する方法を示していますが、リンククラスなどを追加するために簡単に変更できます。

于 2012-04-07T05:48:03.130 に答える
0

このようなものはどうですか?

function new_get_archives_link ( $link_html ) {
   if ('html' == $format) {
         $link_html = "\t<li>$before<a class='hello' href='$url' title='$title_text'>$text</a>$after</li>\n";
      }
      return $link_html;
   }
add_filter("get_archives_link", "new_get_archives_link");

これをfunctions.phpにコピーすれば、コアファイルを編集する必要はありません。

テストされていません。

于 2012-04-06T21:38:28.647 に答える