WordPress: как извлечь массив пользовательских полей на странице - PullRequest
1 голос
/ 13 января 2012

У меня есть личная страница с рядом настраиваемых полей.Я хотел бы узнать, сколько из этих полей заполнено, а затем заполнить боковую панель на основе содержимого полей.у меня есть блок кода, который работает, но он всегда ищет эти четыре поля специально, и если там ничего нет, просто отображается пустой блок.

вот код, который я хочу сжать и сделать умнее:

    <li class="sponsorSlot">
        <a href="<?php echo get_post_meta(158, 'sponsor_01_uri', true); ?>" title="<?php echo get_post_meta(158, 'sponsor_01_uriTitle', true); ?>">
        <img src="<?php bloginfo('stylesheet_directory'); ?>/<?php echo get_post_meta(158, 'sponsor_01_image', true); ?>">
        </a>
    </li>       
    <li class="sponsorSlot">
        <a href="<?php echo get_post_meta(158, 'sponsor_02_uri', true); ?>" title="<?php echo get_post_meta(158, 'sponsor_02_uriTitle', true); ?>">
        <img src="<?php bloginfo('stylesheet_directory'); ?>/<?php echo get_post_meta(158, 'sponsor_02_image', true); ?>">
        </a>
    </li>       
    <li class="sponsorSlot">
        <a href="<?php echo get_post_meta(158, 'sponsor_03_uri', true); ?>" title="<?php echo get_post_meta(158, 'sponsor_03_uriTitle', true); ?>">
        <img src="<?php bloginfo('stylesheet_directory'); ?>/<?php echo get_post_meta(158, 'sponsor_03_image', true); ?>">
        </a>
    </li>       
    <li class="sponsorSlot">
        <a href="<?php echo get_post_meta(158, 'sponsor_04_uri', true); ?>" title="<?php echo get_post_meta(158, 'sponsor_04_uriTitle', true); ?>">
        <img src="<?php bloginfo('stylesheet_directory'); ?>/<?php echo get_post_meta(158, 'sponsor_04_image', true); ?>">
        </a>
    </li>   

вы увидите, что я пытаюсь сделать.было бы неплохо, если бы не имело значения, было ли 1 или 8 записей, оно заполнило бы то, что там было, без необходимости явно указывать.я думал о том, чтобы создать массив, а затем просто пройтись по нему, чтобы собрать нужные мне элементы.

спасибо всем!

WR!

1 Ответ

1 голос
/ 13 января 2012

Вы можете просто добавить условие if, чтобы проверить наличие настраиваемого поля.

Что-то вроде

<?php  if((get_post_meta(158, "sponsor_01_uri", true)) || (get_post_meta($post->ID, "sponsor_01_uriTitle", true))) { ?>

Да, вы можете перебирать значения, возвращаемые get_post_meta (), но в соответствии с документацией по умолчанию он возвращает массив всех значений указанного вами ключа, но вы переопределяете его, указав от $single до FALSE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...