0

これからのフォローアップ: 特定のクラス/ IDをメニューの現在のページに適用します(PHP)

これが私が使用しているコードです:

        <div id="bottoni" style="float:right;margin-top:30px;margin-right:30px">

            <?php
            // funzione per ottenere la class 'current' per la pagina che si sta visitando
            function get_current($name) {
                if (strpos($_SERVER['REQUEST_URI'], $name) !== false)
                    echo 'id="current"';
            }
            ?>

            <a <?php get_current('biografia') ?> href="<?php echo esc_url( home_url( '/' ) ); ?>biografia/"><img style="width:120px;margin-right:25px" src="http://robertocavosi.com/beta/wp-content/themes/robertocavosi/images/bottone_robertocavosi.jpg"></a>
            <a <?php get_current('attore') ?> <?php get_current('regista') ?> <?php get_current('autore') ?> <?php get_current('riconoscimenti') ?> <?php get_current('pubblicazioni') ?> <?php get_current('insegnamento') ?> id="tooltipclick"><img style="width:120px;margin-right:25px;cursor:pointer" src="http://robertocavosi.com/beta/wp-content/themes/robertocavosi/images/bottone_curriculum.jpg"></a>
            <a <?php get_current('gallery') ?> href="<?php echo esc_url( home_url( '/' ) ); ?>gallery/"><img style="width:120px;margin-right:25px;border:0" src="http://robertocavosi.com/beta/wp-content/themes/robertocavosi/images/bottone_gallery.jpg"></a>
            <a <?php get_current('itinera') ?> href="<?php echo esc_url( home_url( '/' ) ); ?>itinera/"><img style="width:120px;margin-right:25px;border:0" src="http://robertocavosi.com/beta/wp-content/themes/robertocavosi/images/bottone_itinera.jpg"></a>
            <a <?php get_current('contatti') ?> href="<?php echo esc_url( home_url( '/' ) ); ?>contatti/"><img style="width:120px;border:0" src="http://robertocavosi.com/beta/wp-content/themes/robertocavosi/images/bottone_contatti.jpg"></a>
        </div>

これらすべてを1回の「呼び出し」で指定したいと思います。

 <?php get_current('attore') ?> <?php get_current('regista') ?> <?php get_current('autore') ?> <?php get_current('riconoscimenti') ?> <?php get_current('pubblicazioni') ?> <?php get_current('insegnamento') ?>

私は試してみました:

 <?php get_current('attore', 'regista', 'autore', 'riconoscimenti', 'pubblicazioni', 'insegnamento') ?>

しかし、それは機能しません...

4

3 に答える 3

1

関数が複数の引数を受け入れるように設計されている場合、関数に複数の引数を渡して機能させることは期待できません。

代わりに、引数を配列に入れて、関数をループで呼び出します。

<?php
$args = array('attore', 'regista', 'autore', 'riconoscimenti', 'pubblicazioni', 'insegnamento');
foreach ($args as $arg) { get_current($arg); }
?>
于 2012-06-04T18:26:54.013 に答える
1

あなたはfunc_get_argsでこれを行うことができます:

<?php
// funzione per ottenere la class 'current' per la pagina che si sta visitando
function get_current() {
    foreach(func_get_args() as $arg) {
        if (strpos($_SERVER['REQUEST_URI'], $arg) !== false) {
            echo 'id="current"';
            break;
        }
    }
}
?>
于 2012-06-04T18:28:58.047 に答える
1

このように使用func_get_args()します:

<?php
function get_current() {
  foreach (func_get_args() as $arg) {
    if (strpos($_SERVER['REQUEST_URI'], $arg) !== false)
      echo 'id="current"';
  }
}

次に、HTMLから関数を呼び出すことができます。

<a <?php get_current('attore', 'regista', 'autore') ?> id="tooltipclick"><img src="http://robertocavosi.com/beta/wp-content/themes/robertocavosi/images/bottone_curriculum.jpg"></a>
于 2012-06-04T18:33:32.457 に答える