function custom_query_shortcode($atts) { // EXAMPLE USAGE: // [loop the_query="showposts=100&post_type=page&post_parent=453"] // Defaults extract(shortcode_atts(array( "the_query" => '' ), $atts)); // de-funkify query $the_query = preg_replace('~�*([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $the_query); $the_query = preg_replace('~�*([0-9]+);~e', 'chr(\\1)', $the_query); // query is made query_posts($the_query); // Reset and setup variables $output = ''; $temp_title = ''; $temp_link = ''; // the loop if (have_posts()) : while (have_posts()) : the_post(); $temp_title = get_the_title($post->ID); $temp_link = get_permalink($post->ID); // output all findings - CUSTOMIZE TO YOUR LIKING $output .= "<li><a href='$temp_link'>$temp_title</a></li>"; endwhile; else: $output .= "nothing found."; endif; wp_reset_query(); return $output; } add_shortcode("loop", "custom_query_shortcode");
비주얼 컴포저 빌더 구조를 간단히 연결하기 위한 쇼트코드 (응용)
function custom_query_shortcode($atts) { // EXAMPLE USAGE: // [linked_content the_query="page_id=1111&post_type=page"] // Defaults extract(shortcode_atts(array( "the_query" => '' ), $atts)); $content_block_query = new WP_Query( $the_query ); if ( $content_block_query->have_posts() ) { while ( $content_block_query->have_posts() ) { $content_block_query->the_post(); the_content(); // 빌더 구성 그대로 (단, 배경 이미지 및 색은 style로 따로 지정해야 함) } } // Restore original Post Data wp_reset_postdata(); } add_shortcode("linked_content", "custom_query_shortcode");
https://codex.wordpress.org/Shortcode_API
https://developer.wordpress.org/reference/functions/add_shortcode/