2016-01-14 4 views
-1

Так что я использую эту функцию ниже, которая работает отлично, однако я хочу преобразовать ее в короткий текст Wordpress.Включение функции в короткий код - Wordpress

<?php 
if(have_rows('pdf_download')): 
    while (have_rows('pdf_download')) : the_row(); ?> 
     <ul> 
      <li><a href="<?php the_sub_field('pdf_download'); ?>">File Download</a></li> 
     </ul> 
     <?php 

    endwhile; 

else : 

endif; 

?> 

С шорткодом я создаю я разные случаи это собирается быть использованы для моего пользовательского систематики. Все страницы, на которых я буду использовать эту функцию, имеют класс body с single-prod и postid - ##. Я думал о написании случаев, которые нацелены на конкретные идентификационные номера, которые я хочу. У меня есть что-то похожее на это, если кто-нибудь может помочь мне

function data_prod($atts) { 

    global $post; 

    switch($post->ID) { 
     // Xbox One 
     case 29: 
      $query = new WP_Query(array(Do Something HERE)); 
      break; 
     // Iphone 6s 
     case 25: 
      $query = new WP_Query(array(Do Something HERE)); 
      break; 
     // iWatch 
     case 17: 
      $query = new WP_Query(array(Do Something HERE)); 
      break; 
    } 

    $content = ''; 
    $content .= '<ul>'; 
     while($query->have_rows('pdf_download')) : $query->the_row(); 
      $content .= '<li><a href="<?php the_sub_field('pdf_download'); ?>">File Download</a></li> '; 
     endwhile; 
    $content .= '</ul>'; 

    return $content; 
} 
add_shortcode('data_prod', 'data_prod'); 
+0

Что вы спрашиваете? ваш вопрос непонятен! также ваша первая «функция» не является функцией. Его петля. – MarkP

+0

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

ответ

0

Поместите первый код в функции, позволяет сказать yourLoopFunction:

function yourLoopFunction() { 
if(have_rows('pdf_download')): 
while (have_rows('pdf_download')) : the_row(); ?> 
    <ul> 
     <li><a href="<?php the_sub_field('pdf_download'); ?>">File Download</a></li> 
    </ul> 
    <?php 

endwhile; 

else : 

endif; 
} 

Затем добавить:

add_shortcode('myLoop', 'yourLoopFunction'); 

Это создаст короткий код [myloop], который вы можете использовать.

Все это должно быть в вашем файле functions.php для специального файла, связанного с вашим файлом functions.php.

Ваша первая остановка должна быть: Wordpress Shortcode API смотреть на получение атрибутов и т.д. ...

+0

Забыл добавить, будьте осторожны при игре с петлями в вашем файле функций. Собственно, будьте осторожны с вашим файлом функций. – MarkP

+0

, поэтому мне не нужно было делать эти случаи? Как он узнает, какие PDF-файлы будут размещаться на какой странице? –

+0

вы будете использовать атрибуты короткого кода - посмотрите на ссылку, которую я отправил. Затем вы можете передать материал в коротком коде, например [myLoop pdf = "123"] или что-то еще ... – MarkP