2013-08-14 2 views
-1

게시물이나 페이지에서 호출 할 수 있도록 단축 코드 기능을 포함하고 싶은 쿼리가 있습니다. 다음과 같이 4 개의 게시물을 가져와야합니다. trim_title()은 제목을 특정 문자 수로 제한하는 또 다른 사용자 지정 함수입니다. 필자는 php 템플릿에 직접 삽입 할 때 (루프가있는) 쿼리가 작동한다는 것을 확인했지만 단축키로 편집기에 포함 할 수 있기를 원합니다. 여기 Wordpress에서 단축키를 사용하여 쿼리 실행

내가 지금 무엇을 가지고 :

function homepage_newsfeed($atts) { 
     $args = array('post_type' => 'post', 'posts_per_page' => 4); 
     $wp_query = new WP_Query($args); 
     echo '<a href="'; 
     the_permalink(); 
     echo '">'; 
     trim_title(); 
     echo '</a>'; 
     echo '<div class="newspostdate">'; 
     the_time('F j, Y'); 
     echo '</div>'; 
     endif; 
     endwhile; 
} 

add_shortcode ('newsfeed', 'homepage_newsfeed'); 

이 루프에 있습니다.

function homepage_newsfeed($atts) { 
     $args = array('post_type' => 'post', 'posts_per_page' => 4); 
     $wp_query = new WP_Query($args); 
     if (have_posts()) : while (have_posts()) : the_post(); 
     return '<a href="'; 
     the_permalink(); 
     return '">'; 
     trim_title(); 
     return '</a>'; 
     return '<div class="newspostdate">'; 
     the_time('F j, Y'); 
     return '</div>'; 
     endwhile; 
     endif; 
} 

add_shortcode ('newsfeed', 'homepage_newsfeed'); 

이 많은 다른 사람의 사이에서 내 시도에 불과합니다 :

function homepage_newsfeed($atts) { 
     $args = array('post_type' => 'post', 'posts_per_page' => 4); 
     $wp_query = new WP_Query($args); 
     if (have_posts()) : while (have_posts()) : the_post(); 
     echo '<a href="'; 
     the_permalink(); 
     echo '">'; 
     trim_title(); 
     echo '</a>'; 
     echo '<div class="newspostdate">'; 
     the_time('F j, Y'); 
     echo '</div>'; 
     endwhile; 
     endif; 
} 

add_shortcode ('newsfeed', 'homepage_newsfeed'); 

나는 또한 반환을 사용하기보다는 같은 에코 시도했다 : I는 또한 같은 함수에서 루프를 포함하여 시도 . 나는 짧은 코드의 내부에서 PHP를 실행하는 방법을 찾기 위해 많은 조사를 해왔지만 대부분의 검색 결과는 do_shortcode(을 사용하여 참조하는 기사를 찾아 PHP에서 shortcode를 사용합니다. 나는 올바른 방향으로 나를 가리키는 도움을 주셔서 감사합니다.

+0

를 참조하십시오

그래서 당신은 시도 할 수도 무슨 일처럼 그것들은 "The Loop"에서 사용하기위한 것이지 당신은 그렇지 않습니다. $ wp_query가 기본 쿼리를 오버라이드하도록 설정하는 것은 좋지 않으므로 함수의 맨 위에 'global $ wp_query;'를 호출하여 재정의해야합니다. 아무튼 그럴 필요는 없습니다. WP_Query의 사용법 (http://codex.wordpress.org/Class_Reference/WP_Query)을보십시오. – Orbling

답변

1

return은 필요한 값을 반환하지만 함수도 종료합니다. 또한 WP에서는 get_ 도우미 함수의 접두어가 붙은 버전이 있으며이 코드는 직접 반향하는 대신 값을 반환합니다.

function myfunction(){ 
    $string = 'lets'; 
    $string .= ' build some string '; 
    $string .= get_the_permalink(); 
    return $string; 
} 

그것은 새 쿼리를 생성 괜찮지 만 당신이 액세스 the_``로 시작하는 함수를 사용하지 않아야 http://php.net/manual/en/language.operators.string.php