개발자를 위한 20개 이상의 WordPress 해킹

게시 됨: 2017-08-17

오늘날 WordPress가 정말 인기 있는 것 중 하나는 이를 백만 가지 방법으로 확장할 수 있는 기회입니다. 예를 들어 플러그인으로 기능을 향상할 수 있는 반면 테마는 모양을 변경하는 데 적합합니다. 결과적으로 사이트는 블로깅, 전자 상거래 및 기타의 다양한 요구 사항을 충족하도록 조정됩니다.

그러나 조정을 통해 WordPress의 진정한 힘을 발휘하는 것은 어떻습니까? 이 킬러 핵으로 한 단계 더 커스터마이징을 해봅시다.

#1. 추천 이미지가 포함된 RSS 피드

RSS Feed with Featured Images

WordPress가 RSS 피드에서 기본적으로 추천 이미지를 표시하는 것을 허용하지 않는 이유가 궁금하신가요? 당신이 블로거이거나 사람들이 구독하도록 조금 더 격려하고 싶다면 분명히 더 나은 조치입니다.

방법은 다음과 같습니다(테마의 functions.php 파일에 추가).

add_filter('the_content_feed', 'rss_post_thumbnail');
function rss_post_thumbnail($content) {
global $post;
if( has_post_thumbnail($post->ID) )
$content = '<p>' . get_the_post_thumbnail($post->ID, 'thumbnail') . '</p>' . $content;
return $content;
}

#2. "Facebook으로 보내기" 버튼 추가

Send to Facebook

블로거는 Facebook을 잠재 고객과 방문자의 거대한 데이터베이스로 봅니다. 맞습니다. 10억 명 이상의 사용자와 함께 트래픽 양을 실제로 늘릴 수 있습니다. 그렇다면 블로그에 추가하고 트래픽을 늘리기 위해 "Facebook으로 보내기" 버튼을 만드는 방법은 무엇입니까?

현재 테마에서 single.php 파일을 열고 이 코드를 루프에 붙여넣으면 됩니다.

<a href="http://www.facebook.com/sharer.php?u=<?php the_permalink();?>&t=<?php the_title(); ?>" target="blank">Share on Facebook</a>

완료!

#삼. 이미지 압축 제거

Eliminate image compression

WordPress는 90%로 압축하기 때문에 100% 품질의 이미지를 제공하지 않는다는 것을 우리 모두 알고 있습니다. 이것이 많은 사람들에게 변경되어야 하는 것처럼 들리지 않을 수도 있지만, 우리 개발자들은 우리가 더 잘할 수 있다는 것을 알고 있습니다.

예를 들어 완벽한 품질을 보장하기 위해 플랫폼이 100% 원본 이미지를 표시하도록 강제할 수 있습니다. 현재 테마의 functions.php 파일에 다음을 추가해야 합니다.

add_filter( 'jpg_quality', 'high_jpg_quality' );
function high_jpg_quality() {
return 100;
}

#4. URL이 있는 사이트 참조

Reference a site with URL

WordPress를 사용하면 사이트에 대한 바로 가기를 참조로 추가할 수 있습니다. 따라서 매번 URL을 입력할 필요가 없습니다. 완료 방법은 다음과 같습니다.

<?php bloginfo('url'); ?>

함수는 다음과 같이 사용됩니다.

<a href="<?php bloginfo('url'); >/about">About Our Company</a>

#5. 공개적으로 표시된 WordPress 버전을 제거하여 보안 향상

WordPress version

해커의 경우 WordPress 버전을 아는 것만으로도 일부 보안 허점을 악용하기에 충분합니다(특히 이전 버전의 경우: 파나마 문서 위반은 이전 설치로 인한 것입니다!). 이 정보를 숨기려면 다음 해킹을 사용할 수 있습니다.

<?php
// Remove the WP version for extra WordPress Security
function remove_wp_version(){ 
return ''; 
} 
add_filter('the_generator', 'remove_wp_version'); 
?>

#6. 등록할 수 있는 사람의 수를 제한합니다.

많은 새로운 WordPress 사용자가 사용자 페이지를 방문하고 있다는 것을 알았다면 누구나 등록을 허용했을 것입니다. 설정을 확인하면 사용자가 RSS를 통해 구독하고 있음을 알 수 있습니다.

등록된 사용자가 너무 많은 것을 원하지 않으면 설정으로 이동하여 모든 사람이 멤버십 옵션을 사용하여 등록할 수 있도록 허용하는 확인란의 선택을 취소합니다. 그게 다야!

#7. 댓글에서 HTML을 비활성화하여 스팸 방지

Disabling HTML in comments

스팸은 WordPress를 사용하는 많은 사람들에게 실질적인 문제입니다. 예를 들어, 블로거는 종종 댓글 섹션에서 의심스러운 사이트에 대한 링크를 발견합니다. 스팸이 포함된 게시물은 눈에 잘 띄지 않으므로 최대한 빨리 문제를 제거해야 합니다.

HTML을 비활성화하고 스팸 발송자가 링크 및 기타 방법을 포함하는 것을 방지하려면 다음 코드를 functions.php 파일에 추가해야 합니다.

// This will occur when the comment is posted
function plc_comment_post( $incoming_comment ) {
    // convert everything in a comment to display literally
    $incoming_comment['comment_content'] = htmlspecialchars($incoming_comment['comment_content']);
    // the one exception is single quotes, which cannot be #039; because WordPress marks it as spam
    $incoming_comment['comment_content'] = str_replace( "'", '&apos;', $incoming_comment['comment_content'] );
    return( $incoming_comment );
}
// This will occur before a comment is displayed
function plc_comment_display( $comment_to_display ) {
    // Put the single quotes back in
    $comment_to_display = str_replace( '&apos;', "'", $comment_to_display );
    return $comment_to_display;
}
add_filter( 'preprocess_comment', 'plc_comment_post', '', 1 );
add_filter( 'comment_text', 'plc_comment_display', '', 1 );
add_filter( 'comment_text_rss', 'plc_comment_display', '', 1 );
add_filter( 'comment_excerpt', 'plc_comment_display', '', 1 );
// This stops WordPress from trying to automatically make hyperlinks on text:
remove_filter( 'comment_text', 'make_clickable', 9 );

#8. 이메일을 로그인으로 사용

이 믿을 수 없을 정도로 간단한 해킹은 보안 강화 측면에서 매우 유용할 수 있습니다. 해커의 경우 사용자 이름보다 이메일을 예측하는 것이 훨씬 더 어렵기 때문에 더 안전한 방법입니다.

#9. 홈페이지에 최근 게시물 표시

Display recent posts on homepage

이것은 홈페이지에 최신 블로그 항목을 표시할 수 있는 블로거를 위한 훌륭한 해킹입니다. 블로그를 홈페이지로 만들 필요가 없습니다! 다음 코드만 사용해야 합니다.

<?php query_posts($query_string . '&showposts=5' ); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="story">
<div class="story-content">
<h4><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4>
<?php the_excerpt(); ?>
<?php endwhile; endif; ?>

#10. 관리자 로고 변경

Change the admin logo

위에서 말했듯이 WordPress의 가장 큰 기능 중 하나는 사용자 정의입니다. 이 섹션은 이 범주에 속합니다. 다음 해킹을 통해 기본 관리자 로고 대신 클라이언트 로고를 표시할 수 있습니다. 플러그인이나 그 어떤 것도 필요하지 않습니다. 다음 코드를 functions.php에 삽입하기만 하면 됩니다.

function custom_admin_logo() {
  echo '<style type="text/css">
          #header-logo { background-image: url('.get_bloginfo('template_directory').'/images/admin_logo.png) !important; }
        </style>';
}
add_action('admin_head', 'custom_admin_logo');

#11. 로그인 페이지에서 오류 알림 삭제

이것은 로그인 페이지에서 오류 메시지를 제거하여 해커가 잘못된 로그인 또는 비밀번호에 대해 경고하는 것을 방지하는 또 다른 보안 해킹입니다. 다음 코드를 삽입하세요.

add_filter('login_errors',create_function('$a', "return null;"));

#12. 기본 HTML 편집기 설정

Set default HTML editor

우리 목록의 다음 해킹을 통해 WordPress 사용자는 Visual Editor를 사용할지 HTML 편집기를 사용할지 결정할 수 있습니다. 특정 코드를 선호하는 경우 다음 코드를 사용하십시오(functions.php에 삽입).

# HTML Editor as default
add_filter( 'ks29so_default_editor', create_function('', 'return "html";') );

# Visual Editor as default
add_filter( 'ks29so_default_editor', create_function('', 'return "tinymce";') );

#13. 대시의 바닥글 텍스트 변경

이 해킹은 대시 바닥글에 일부 텍스트를 표시하여 고객을 즐겁게 놀라게 하려는 개발자에게 유용할 수 있습니다. 다음을 functions.php 파일에 삽입하기만 하면 됩니다.

function remove_footer_admin () {
  echo "Your own text";
} 

add_filter('admin_footer_text', 'remove_footer_admin');

#14. 위젯에 단축 코드 추가

Add a shortcode to widget

다음 코드를 functions.php에 추가하여 WordPress에 유용한 단축 코드를 사용하도록 가르칠 수 있습니다.

add_filter('widget_text', 'do_shortcode');

#15. 대시 로고 사용자 정의

개발자가 클라이언트를 위해 웹 사이트를 사용자 정의할 수 있는 해킹이 한 번 더 있습니다. 설치를 개인화하려면 다음을 사용하여 대시에 로고를 추가할 수 있습니다.

add_action('admin_head', 'custom_logo');

function custom_logo() {
echo '

<style type="text/css"><!--
#header-logo { background-image: url('.get_bloginfo('template_directory').'/images/custom-logo.gif) !important; }
--></style>';
}

#16. 예정된 게시물 나열

이 해킹은 방문자가 볼 수 있는 목록에 예정된 게시물을 예약하려는 블로거를 위한 것입니다. 테마의 아무 곳에나 다음 코드를 복사하여 붙여넣습니다.

<div id="zukunft">
  <div id="zukunft_header"><p>Future events</p></div>

  <?php query_posts('showposts=10&post_status=future'); ?>
  <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <div >
      <p class><b><?php the_title(); ?></b><?php edit_post_link('e',' (',')'); ?><br />

      <span class="datetime"><?php the_time('j. F Y'); ?></span></p>
    </div>
  <?php endwhile; else: ?><p>No future events scheduled.</p><?php endif; ?>

</div>

#17. 적절한 URL

사이트 주소가 정확한 것이 중요합니다. esc_url() 함수를 사용하면 오류가 없는 상태로 유지할 수 있습니다.

$my_url = 'http://myawesomesite.com/?awesome=true';
$url = esc_url( $my_url );

#18: 게시물 수정 줄이기

Reduce post revisions

WordPress에는 데이터베이스에 저장된 게시물 수정의 기본 제한이 없습니다. 시간이 지남에 따라 그 수는 극적으로 증가할 수 있습니다(이는 사이트에 아무런 도움이 되지 않음). 제한을 설정하려면 다음 코드를 wp-config.php 파일에 추가하십시오.

define( 'WP_POST_REVISIONS', 3 );

이 예에서는 제한을 3으로 설정합니다.

#19: 수정본 저장 비활성화

Disable storage of revisions

이것은 포스트 개정의 주제를 계속합니다. 비활성화하려면 다음 코드를 사용하십시오.

define( 'WP_POST_REVISIONS', -1 );

#20. 발췌문의 길이 변경

어떤 경우에는 표준 발췌문이 레이아웃에 가장 적합하지 않을 수 있습니다. 변경하는 것은 정말 쉽습니다. functions.php를 열고 삽입하십시오("20"은 길이 값입니다):

function custom_excerpt_length( $length ) {
  return 20;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

#21. Twitter 스타일 "시간 전" 날짜 추가

Time ago dates

일부 개발자는 WordPress가 "시간 전" 형식을 사용하여 날짜를 표시할 수 있다는 것을 모릅니다. 루프 내 아무 곳에나 다음 코드를 붙여넣으면 됩니다.

Posted <?php echo human_time_diff(get_the_time('U'), current_time('timestamp')) . ' ago';

해킹할 시간입니다!

이 간단하지만 편리한 해킹으로 WordPress의 힘을 발휘할 준비가 되셨습니까? 이를 시도함으로써 웹 사이트의 새로운 기능을 발견하고 기능을 확장하여 보다 기능적인 환경으로 만들 수 있습니다.

이러한 해킹의 이점을 확인한 후에는 콘텐츠 관리 작업을 보다 효과적으로 수행할 수 있습니다. 또한 그 중 일부는 특히 중요한 사이트 보안을 향상시킬 수 있습니다.

이 모든 것 – 단일 플러그인을 설치할 필요 없이! WordPress 사이트가 설치된 많은 플러그인에 의존한다는 점을 감안할 때 이러한 발전은 빠른 로딩 속도를 유지하는 데 매우 유용할 수 있습니다.

이 기사가 새로운 WordPress 해킹을 찾고 사이트를 개선하는 데 도움이 되기를 바랍니다.