20개 이상의 가장 원하는 WordPress 루프 해킹
게시 됨: 2017-12-20루프는 WordPress의 주요 프로세스이므로 거의 모든 테마 파일에서 찾을 수 있습니다. 기본적으로 플랫폼에서 테마 템플릿 파일을 통해 게시물을 표시하는 데 사용하는 PHP 코드입니다. 즉, 거대합니다. 실제로 사이트는 루프 없이는 작동하지 않기 때문에 중요합니다.
이 엄청나게 강력한 기능을 조정하면 WordPress 사이트의 기능을 향상시킬 수 있습니다. 예를 들어, 게시물이 홈페이지에 표시되는 방식을 변경하고 특정 매개변수를 사용하여 게시물을 정렬할 수 있습니다. 루프가 수정하기 가장 쉽다는 점을 감안할 때 꽤 인상적이고 창의적인 해킹을 얻을 수 있습니다.
플러그인을 설치할 필요 없이 지금 바로 사용해야 하는 20개 이상의 루프 핵을 보여드리겠습니다.
#1. 첫 번째 게시물 이후에 장소 광고
블로거로서 당신은 광고가 돈을 버는 가장 좋은 방법 중 하나라는 것을 아주 잘 알고 있습니다. 방문자로부터 필요한 클릭을 얻는 것은 확실히 까다로운 일이며 많은 블로거는 높은 클릭률을 즐기지 않습니다. 첫 번째 게시물 뒤에 광고를 배치하면 광고를 늘리는 좋은 방법이 될 수 있으므로 이 간단한 조정을 시도하십시오.
루프를 아래 루프로 교체하십시오. 여기에 광고 코드를 붙여넣어야 하므로 주의하세요.
[php]
<?php if (have_posts()) : ?>
<?php $count = 0; ?>
<?php while (have_posts()) : the_post(); ?>
<?php $count++; ?>
<?php if ($count == 2) : ?>
//이 줄에 광고 코드를 삽입합니다.
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php 기타 : ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php endif; ?>
<?php 그 동안; ?>
<?php endif; ?>
[/php]
#2. 오래되었지만 인기 있는 1년 된 게시물 표시
블로그의 일부 게시물은 1년 전에 작성되었지만 여전히 독자들 사이에서 인기가 있을 수 있습니다. 예를 들어, 방법 문서나 다른 종류의 상생 콘텐츠가 될 수 있습니다. 이러한 게시물의 인기를 유지하기 위해 이 편리한 해킹을 적용할 수 있습니다.
이 코드를 single.php 파일에 삽입하십시오.
[php]
<?php
$current_day = 날짜('j');
$last_year = 날짜('Y')-1;
query_posts('day='.$current_day.'&year='.$last_year);
if (have_posts()):
동안 (have_posts()) : the_post();
제목();
the_excerpt();
그 동안;
엔디프;
?>
[/php]
#삼. 루프에 5개의 최신 고정 게시물 표시
기본 기능을 사용하면 하나의 게시물을 첫 페이지에 붙일 수 있습니다. 아래의 해킹은 5개의 고정 게시물을 배치합니다.
많은 블로거는 항목이 다른 항목 위에 표시되도록 하기 때문에 고정 게시물을 추천 게시물로 생각합니다. 자신만의 "Editor's Picks" 카테고리를 만들고 싶다면 이를 위한 해킹 방법이 있습니다. 작동하려면 테마의 아무 곳에나 아래 코드를 삽입해야 합니다. 네 번째 줄의 숫자를 바꿔서 더 적은 게시물을 표시하도록 숫자를 변경할 수도 있습니다.
[php]
<?php
$sticky = get_option('sticky_posts');
rsort( $sticky );
$sticky = array_slice( $sticky, 0, 5);
query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) );
if (have_posts()) :
동안 (have_posts()) : the_post();
제목();
the_excerpt();
그 동안;
엔디프;
?>
[/php]
#4. 특정 카테고리의 게시물 나열
아래 해킹으로 같은 카테고리의 게시물을 구별하십시오.
어떤 이유로 같은 범주를 공유하는 게시물을 구별해야 하는 경우(예: 에세이 작성자를 위한 방법 기사) 루프 파일에 다음 코드를 삽입합니다.
[php]
<?php foreach((get_the_category()) as $category) {
$thecat = $category->cat_ID . ' ';
query_posts('child_of='.$thecat);
if (have_posts()) : 동안 (have_posts()) : the_post();
//클래식 WP 루프
엔디프
?>
[/php]
#5. 향후 게시물 목록 제공
독자에게 다가오는 게시물에 대해 알리는 것은 관심을 불러일으키고 블로그를 다시 방문하여 읽게 만들 수 있습니다. 이것이 좋은 생각처럼 들리면 아래 코드를 사용하여 WordPress 사이트에 예정된 게시물의 짧은 목록을 제공하십시오.
[php]
<?php query_posts('showposts=10&post_status=future'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2><?php_title(); ?></h2>
<span class="datetime"><?php_time('j.F Y'); ?></span></p>
<?php 그 동안;
else: ?><p>미래의 일정이 없습니다.</p>
<?php endif; ?>
[/php]
#6. 특정 날짜에 업로드된 게시물 가져오기
피드에서 게시물을 찾는 데 자주 어려움을 겪는다면 루프를 사용하여 게시물을 검색할 수 있습니다. 검색을 정말 쉽게 만드는 다음 코드를 삽입하면 가능합니다. 특히, 사용자가 직접 지정한 두 날짜 사이에 게시된 항목을 검색합니다.
[php]
<?php
함수 filter_where($where = ") {
$where .= " AND post_date >= '2012-08-19' AND post_date <= '2012-08-11'";
$where를 반환합니다.
}
add_filter('포스트_위치', '필터_위치');
query_posts($query_string);
동안 (have_posts()) :
the_post();
콘텐츠();
그 동안;
?>
[/php]
#7. 이미지 루프 표시
대부분의 사람들이 비주얼을 높이 평가하기 때문에 WordPress 웹사이트의 시작 페이지에 있는 이미지 갤러리는 좋은 생각입니다. 게시물에 리드 이미지가 포함된 경우 아래 코드는 루프에서 보여주기 위해 해당 이미지를 검색합니다.
functions.php 파일에 다음 코드를 삽입하십시오.
[php]
기능 catch_that_image() {
글로벌 $post, $posts;
$first_img = ";
ob_start();
ob_end_clean();
$output = preg_match_all('/<img.+src=['"]([^'"]+)['"].*>/i', $post->post_content, $matches);
$first_img = $matches [1] [0];
if(empty($first_img)){ //기본 이미지를 결정
$first_img = "/이미지/default.jpg";
}
$first_img 반환;
}
[/php]
#8. 만료 날짜를 설정하여 자동으로 게시물 제거
블로그의 독자층을 늘리기 위해 콘테스트를 진행한다고 가정해 보겠습니다. 콘테스트가 끝나면 결과를 발표하고 가장 중요한 것은 그에 대한 답변이나 힌트, 단서를 게시합니다. 물론 독자들이 영원히 접근할 수 없어야 합니다. 나중에 다른 대회를 진행할 수도 있기 때문입니다. 그렇죠?
잊어버린 게시물을 제거하는 좋은 방법은 만료 날짜를 설정하여 예약하는 것입니다. 아래 루프는 기존 루프를 대체하고 바로 수행합니다.
만료 시간을 대체하기 위해 mm/dd/yyyy 00:00:00 형식을 사용하는 것을 잊지 마십시오.
[php]
<?php
if (have_posts()) :
동안 (have_posts()) : the_post(); ?>
$expirationtime = get_post_custom_values('만료');
if (is_array($expirationtime)) {
$expirestring = 내파($expirationtime);
}
$seconds between = strtotime($expirestring)-time();
if ( $seconds between > 0 ) {
// 예를 들어…
제목();
the_excerpt();
}
그 동안;
엔디프;
?>
[/php]
#9. 트랙백에서 주석 분리
블로그의 인기 항목은 다른 많은 사이트에서 링크됩니다. 독자가 댓글 섹션의 토론을 편안하게 따를 수 있도록 댓글과 트랙백을 분리해야 합니다.
comment.php를 열고 다음을 찾기만 하면 됩니다.
[php]
foreach($comments를 $comment로) : ?>
// 댓글이 여기에 표시됩니다.
엔포리치;
[/php]
그것을 발견? 좋습니다. 이제 새 코드로 바꾸십시오.
[php]
<ul class="댓글 목록">
<?php //주석만 표시
foreach($comments를 $comment로) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type == '댓글') { ?>
<li>//코멘트 코드가 여기에 표시됩니다.</li>
<?php }
엔포리치;
</ul>
<울>
<?php //트랙백만 표시
foreach($comments를 $comment로) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type != '댓글') { ?>
<li><?php comment_author_link() ?></li>
<?php }
엔드포리치;
</ul>
[/php]
#10. 관련 게시물 표시
관련 게시물을 표시하는 것은 독자층을 늘리는 좋은 방법입니다. 특별한 코드를 single.php 파일에 붙여넣기만 하면 됩니다.
[php]
<?php
$backup = $post; // 현재 객체 백업
$tags = ks29so_get_post_tags($post->ID);
$tagIDs = 배열();
if($태그) {
$tagcount = 개수($태그);
($i = 0; $i < $tagcount; $i++) {
$tagIDs[$i] = $tags[$i]->term_id;
}
$args=배열(
'tag__in' => $tagID,
'post__not_in' => 배열($post->ID),
'쇼 포스트'=>5,
'caller_get_posts'=>1
);
$my_query = 새로운 WP_Query($args);
if( $my_query->have_posts() ) {
동안 ($my_query->have_posts()) : $my_query->the_post(); ?>
<h3><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
<?php 그 동안;
} 다른 { ?>
<h2>관련 게시물을 찾을 수 없습니다!</h2>
<?php }
}
$post = $backup; // 다시 복사
ks29so_reset_query(); // 원래 쿼리를 다시 사용하려면
?>
[/php]

#11. 특정 게시물이 홈페이지에 표시되는 방식 결정
대다수의 WordPress 테마는 시작 페이지에 모든 게시물을 동일한 방식으로 표시합니다. 그러나 마음에 들지 않으면 변경하여 전체를 표시해야 하는 항목과 발췌한 항목만 표시하는 항목을 정의할 수 있습니다.
index.php 파일을 찾아 루프를 찾으십시오. 다음 코드가 이를 대체합니다.
[php]
<?php if (have_posts()) :
동안 (have_posts()) : the_post();
$customField = get_post_custom_values("전체");
if (isset($customField[0])) {
//사용자 정의 필드가 설정되면 전체 게시물을 표시합니다.
제목();
콘텐츠();
} 또 다른 {
// 사용자 정의 필드가 설정되지 않았으므로 발췌문을 표시할 수 있습니다.
제목();
the_excerpt();
그 동안;
엔디프;
?>
[/php]
#12. 홈페이지 게시물 위에 판촉 콘텐츠 표시
index.php 파일에 다음 코드를 삽입하여 프로모션 콘텐츠를 추가합니다.
[php]
<div class="콘텐츠 루프">
[/php]
#13. 페이지에 블로그의 모든 작성자 나열
루프의 아무 곳에나 이 코드를 붙여넣으면 모든 작성자의 목록이 표시됩니다.
[php]
<울>
<?php ks29so_list_authors('exclude_admin=0&optioncount=1&show_fullname=1&hide_empty=1'); ?>
</ul>
[/php]
#14. 사용자 정의 필드를 사용하여 게스트 작성자 이름 표시
블로그에서 게스트 작성자를 사용하는 경우 별도의 페이지를 만들지 않을 가능성이 큽니다. 대신 이름을 표시하지 않는 이유는 무엇입니까?
이 코드를 single.php에 삽입하여 수행하십시오.
[php]
<?php $author = get_post_meta($post->ID, "게스트 작성자", true);
if ($author != "") {
에코 $저자;
} 또 다른 {
저자();
} ?>
[/php]
#15. 이미지를 게시를 위한 필수 요구 사항으로 지정
이미지가 있는 게시물은 그렇지 않은 게시물보다 조회수가 더 많습니다. functions.php 파일을 열어 필수 항목으로 만드십시오.
[php]
add_action('save_post', 'wpds_check_thumbnail');
add_action('admin_notices', 'wpds_thumbnail_error');
함수 wpds_check_thumbnail( $post_id ) {
// 사용자 정의 게시물 유형으로 변경
if( get_post_type($post_id) != '게시물' )
반품;
if ( ! has_post_thumbnail( $post_id ) ) {
// 사용자에게 관리자 메시지를 표시하도록 임시 설정
set_transient( "has_post_thumbnail", "아니요" );
// 무한 반복되지 않도록 이 함수의 후크를 해제합니다.
remove_action('save_post', 'wpds_check_thumbnail');
// 게시물을 초안으로 설정하여 업데이트합니다.
ks29so_update_post(array('ID' => $post_id, 'post_status' => '초안'));
add_action('save_post', 'wpds_check_thumbnail');
} 또 다른 {
delete_transient( "has_post_thumbnail" );
}
}
함수 wpds_thumbnail_error() {
// 과도 상태가 설정되었는지 확인하고 오류 메시지를 표시합니다.
if ( get_transient( "has_post_thumbnail" ) == "아니요" ) {
echo "<div id='message' class='error'><p><strong>게시하기 전에 추천 이미지를 추가해야 합니다. 당황하지 마세요. 게시물이 저장됩니다.</strong></p>< /div>";
delete_transient( "has_post_thumbnail" );
}
}
[/php]
#16. 등록 후 특정 페이지로 이동
functions.php 파일을 열고 아래 코드를 추가하세요.
[php]
함수 __my_registration_redirect(){
return home_url( '/내 페이지' );
}
add_filter( '등록_리디렉션', '__my_registration_redirect' );
#17. 게시물에 광고 삽입
functions.php 파일에서 이 코드를 사용하여 원하는 위치에 게시물의 광고를 래핑하십시오.
마구 자르기
기능 googleadsense($content){
$adsensecode = '여기에 귀하의 광고 코드';
$패턴 = '<!-googlead->';
$content = str_replace($pattern, $adsensecode, $content);
$content 반환;
}
add_filter('the_content', 'googleadsense');
[/php]
#18. 쇼트코드를 사용하여 광고 표시
광고를 삽입할 위치를 선택하고 다음 코드를 functions.php에 붙여넣습니다.
[php]
함수 showads() {
반품 '
광고 코드는 여기
';
}
add_shortcode('애드센스', '쇼어드');
[/php]
#19. 가장 많이 댓글이 달린 게시물 표시
functions.php 파일에 다음 코드를 추가하여 댓글이 가장 많은 게시물을 표시합니다.
[php]
함수 wpb_most_commented_posts() {
ob_start();?>
<ul class="최다 주석 처리">
<?php
$query = 신규
WP_Query('orderby=comment_count&posts_per_page=10');
while($query->have_posts()) : $query->the_post(); ?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a> <span class="wpb-comment-count"><?php comments_popup_link('댓글 없음;', '댓글 1개', '댓글 %'); ?></span></li>
<?php 그 동안; ?>
</ul>
<?php// 출력 버퍼링 끄기
$출력 = ob_get_clean();
리턴 $출력; }
add_shortcode('wpb_most_commented', 'wpb_most_commented_posts');
add_filter('위젯_텍스트', 'do_shortcode');
[/php]
#20. 추천 이미지 지원 활성화
대다수의 워드프레스 테마는 추천 이미지를 지원하지만, 지원하지 않는 경우 functions.php 파일에 삽입하여 활성화할 수 있습니다.
[php]
add_theme_support( '포스트 썸네일' );
[/php]
#21. 최신 댓글 표시
루프의 아무 곳에서나 이 코드를 사용하여 5개의 최신 주석을 표시합니다.
[php]
<?php
$query = "SELECT * from $wpdb->comments WHERE comment_approved= '1'
ORDER BY comment_date DESC LIMIT 0 ,5";
$comments = $wpdb->get_results($query);
if ($comments) {
에코 '<ul>';
foreach($comments를 $comment로) {
$url = '<a href="'.get_permalink($comment->comment_post_ID).'#comment-'.$comment->comment_ID .'" title="'.$comment->comment_author .' | '.get_the_title($comment->comment_post_ID).'">';
에코 '<li>';
echo '<div 클래스="img">';
에코 $url;
echo get_avatar( $comment->comment_author_email, $img_w);
에코 '</a></div>';
echo '<div class="txt">파: ';
에코 $url;
echo $comment->comment_author;
에코 '</a></div>';
에코 '</li>';
}
에코 '</ul>';
}
?>
[/php]
해킹할 준비가 되었나요?
이 편리한 조정을 사용하여 WordPress 사이트의 기능을 향상시키십시오!