function portfolio_shortcode($atts, $content = null){
extract(shortcode_atts(array(
'type' => 'post',
), $atts));
$q = new WP_Query(
array('posts_per_page' => 5, 'post_type' => 'portfolio')
);
$list = '<div class="row">
<section id="projects">
<ul id="thumbs" class="portfolio">';
while($q->have_posts()) : $q->the_post();
$idd = get_the_ID();
$portfolio_large = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'portfolio-large');
$portfolio_thumb = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'portfolio-image');
$list .= '
<!-- Item Project and Filter Name -->
<li class="col-lg-3 design" data-id="id-0" data-type="web">
<div class="item-thumbs">
<!-- Fancybox - Gallery Enabled - Title - Full Image -->
<a class="hover-wrap fancybox" data-fancybox-group="gallery" title="'.get_the_title().'" href="'.$portfolio_large[0].'">
<span class="overlay-img"></span>
<span class="overlay-img-thumb font-icon-plus"></span>
</a>
<img src="'.$portfolio_thumb[0].'" alt="'.get_the_title().'" />
</div>
</li>
';
endwhile;
$list.= '</ul></section></div>';
wp_reset_query();
return $list;
}
add_shortcode('portfolio', 'portfolio_shortcode');
답변
사용하려고하기 전에 글을 게시하지 않으려 고합니다. 그것. 문제가되는 행은 다음과 같습니다.
$portfolio_large = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'portfolio-large');
$portfolio_thumb = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'portfolio-image');
이 오류는 두 가지 해결책이 있습니다.
1)
는 함수의 상단에 global $post;
를 추가합니다. 예 :
function portfolio_shortcode($atts, $content = null) {
global $post;
...
2)
은 이미 $idd = get_the_ID();
으로 ID를 받고 있습니다. $post->ID
대신이를 사용하십시오. 예 :
$portfolio_large = wp_get_attachment_image_src(get_post_thumbnail_id($idd), 'portfolio-large');
$portfolio_thumb = wp_get_attachment_image_src(get_post_thumbnail_id($idd), 'portfolio-image');
당신이 미래에 비슷한 문제로 실행하는 경우는 도움이되지 않기 때문에 내가 마지막에 언급하고있어 세 번째 대안도 있습니다. get_post_thumbnail_id()
은 루프의 현재 게시물에서 작동합니다. 따라서 ID를 전달할 필요가 없습니다.
OP가 '$ post'를 어디서나 정의했는지 어떻게 알 수 있습니까?! – Rizier123
코드는 WordPress에만 적용됩니다. '$ post'는 이미 전역 적으로 정의 된 것이지 사용자가 스스로해야하는 것이 아닙니다. –
안녕하세요, Nathan Dawson, 대단히 감사합니다. –
'$ post-> ID' ->'$ idd-> ID'? – Rizier123
마지막 줄이 정말로 48 줄입니까? 지금까지 뭐 해봤 어? – belwood
제목에 누더기가 붙은 문제를 다루는 질문이나 질문의 본문에있는 다른 설명 정보는 닫히지 않는 경향이 있습니다. – halfer