회원 전용 웹사이트를 위한 WordPress 해킹
게시 됨: 2020-05-19기본적으로 WordPress는 블로그 도구입니다. 그럼에도 불구하고 진정으로 사용자 정의하여 원하는 대로 만들 수 있습니다. 많은 사람들이 WordPress를 사용하여 회원 전용 웹 사이트를 만듭니다.
플러그인을 항상 사용할 수 있지만 약간의 수정만 필요하다면 몇 줄의 코드로 플러그인을 설치할 수 있는데 왜 설치해야 하나요? 다음은 회원 전용 사이트를 만들기 위한 간단하면서도 효과적인 몇 가지 방법입니다.
플러그인이 없는 회원 전용 콘텐츠
사이트에 등록된 회원에게만 표시하고 싶은 특정 콘텐츠가 있는 경우 테마에 다음 코드를 사용하여 표시할 수 있습니다. is_user_logged_in
사이에 있는 모든 것은 회원만 볼 수 있습니다.
<?php if ( is_user_logged_in() ) { ?> // Content for Logged in user <?php } else {?> // Content for everyone else <?php }?>
어디서나 WordPress 로그인 양식 표시 및 사용자 정의
테마의 아무 곳에나 WordPress 로그인 양식을 포함하려면 다음 기능을 사용하면 됩니다.
<?php ks29so_login_form(); ?>
그러나 기본 WordPress 로그인 양식을 직접 가져오기 때문에 로그인 양식을 사용자 정의하는 옵션은 제공하지 않습니다. 이런 걸 보여주고 싶다면?
다음은 이를 수행하는 코드입니다. 양식을 표시할 위치에 다음 코드를 붙여넣습니다.
// WordPress Login Form <?php if (!(current_user_can(‘level_0′))){ ?> <h3>Member Login</h3> <form action="<?php echo get_option(‘home’); ?>/wp-login.php" method="post"> <table width=’100%’ cellspacing="0" cellpadding="0"> <tr> <td> <label><?php _e( ‘Username’ ) ?></label> <input type="text" name="log" class="input" value="<?php echo attribute_escape(stripslashes($user_login)); ?>" /> </td> <td> <label><?php _e( ‘Password’ ) ?></label> <input type="password" name="pwd" class="input" value="" /> </td> </tr> <tr> <td colspan="2"><?php do_action(‘login_form’); ?> </td> </tr> <tr> <td> <a href="<?php echo site_url(‘wp-login.php?action=lostpassword’, ‘login’) ?>" title="<?php _e(‘Password Lost and Found’) ?>"><?php _e(‘Forgot Password?’) ?></a> </td> <td> <input type="submit" name="submit" value="Log In" class="button" /> <input type="hidden" name="redirect_to" value="http://<?php echo $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] ?>" /> </td> </tr> </table> </form> <?php } else { ?> <!– When User logged in Show the following info –> <h2>Logout</h2> <?php get_currentuserinfo();?> Welcome Back  <?php echo($current_user->user_login . " ");?><br /> <a href="<?php echo ks29so_logout_url(urlencode($_SERVER['REQUEST_URI'])); ?>">Logout</a><br /> <a href="<?php echo get_admin_url(); ?>">Admin?</a><!– If you are admin goes to admin dashboard –> <?php }?>
CSS div 태그를 추가하여 스타일을 지정할 수 있습니다. 이 로그인 양식을 사용하면 get_currentuserinfo() 함수를 사용하여 회원을 위한 미니 대시보드를 거의 만들고 사용자에 대한 정보를 표시할 수 있다는 장점이 있습니다.
회원을 위한 맞춤형 WordPress 메뉴
콘텐츠처럼 회원을 위한 맞춤형 WordPress 메뉴를 만들 수 있습니다. 먼저 메뉴를 등록해 보겠습니다. 테마 함수 파일(functions.php)로 이동합니다. 다음 코드를 사용하여 메뉴를 등록하십시오.
register_nav_menus( array( ‘primary’ => __( ‘Primary Navigation’, ‘twentyten’ ), ‘visitor’ => __( ‘Visitor Navigation’, ‘twentyten’ ), ‘footer’ => __( ‘Footer Navigation’, ‘twentyten’ ), ) );
이제 메뉴를 표시할 위치에 다음 코드를 넣으십시오. 아마도 header.php 파일 내부일 것입니다.
<?php if ( is_user_logged_in() ) { ks29so_nav_menu( array( ‘container_class’ => ‘menu-header’, ‘theme_location’ => ‘primary’ ) ); } else { ks29so_nav_menu( array( ‘container_class’ => ‘menu-header’, ‘theme_location’ => ‘visitor’ ) ); };?>
이제 실제로 WordPress 백핸드에서 메뉴를 만들어야 합니다. "메뉴" 설정은 모양 탭 아래에 있어야 합니다. 메인과 방문자라는 이름으로 메뉴를 만듭니다. 두 메뉴 모두에 표시하려는 항목을 추가합니다. 예: 사용자가 로그인할 때만 페이지를 표시하려면 기본 메뉴에 추가하십시오.
같은 방법을 사용하여 동적 바닥글 메뉴를 만들 수도 있습니다.
블로거를 위한 WordPress 사용자 정의 필드 및 해킹
WordPress를 사용하여 맞춤형 전문 웹사이트를 만들 수 있습니다. 이 게시물에서는 더 나은 WordPress 기반 사이트를 가질 수 있는 몇 가지 WordPress 사용자 정의 필드 트릭과 해킹을 공유합니다.
때때로 귀하의 사이트에 하나의 게시물만 작성하는 게스트 블로거가 있을 수 있습니다. 이 방법을 사용하여 일반 작성자 정보를 표시할 수 있습니다. 작성자는 WordPress에 등록되어 있습니다. 새로운 게스트 작가가 글을 쓸 때마다 등록하고 싶지 않을 수도 있습니다. 그러나 게스트 작성자 정보를 일반 작성자와 동일한 형식으로 표시하려면 어떻게 해야 합니까? 사용자 정의 필드!
프론트 페이지 및 개별 게시물의 게스트 작성자 이름
가장 먼저 해야 할 일은 WordPress if 문을 설정하여 사용자 정의 필드 값을 가져오는 것입니다. 이렇게 하면 사용자 정의 파일 값이 할당될 때만 표시됩니다. "index.php"와 "single.php"를 열고 작성자 이름을 표시할 다음 코드를 붙여넣습니다. 날짜 이후 또는 댓글 이후일 수 있습니다. 예를 들어 이 코드 뒤에:
<?php the_time(‘M j, Y’) ?>
< ?php if ( get_post_meta($post->ID, 'guest_author_name', true) ) { ?> // check to see if custom field guest author name exists < ?php echo get_post_meta($post->ID, "guest_author_name", $single = true); ?> < ?php } ?>\
if 문을 넣으면 게스트 작성자 이름이 표시되기를 원하는 게시물에 호출합니다. 게스트 작성자 이름은 첫 페이지와 특정 게시물에만 표시되어야 합니다.
개별 게시물 게스트 작성자 정보 차단
좋아요, 그래서 포스트 메타 설명에 이름이 표시되지만 게스트 작성자에 대한 일부 정보도 좋을 것입니다.
다시 말하지만, 먼저 저자 이미지 엄지손가락과 설명을 찾는 조건부 if 문이 있습니다. 이미지 디렉토리를 변경하는 것을 잊지 마십시오. 또한 블록과 썸에 클래스를 첨부하여 CSS를 사용하여 이미지와 블록 모두에 스타일을 지정할 수 있습니다.
<?php if ( get_post_meta($post->ID, ‘autho_thumb’, true) ) { ?> // checks to see if the custom field exist <div class="writer_bio"> <img class="autho_thumb" src="http://media.webdesignviews.com/author/<?php $values = get_post_custom_values("autho_thumb"); echo $values[0]; ?>" alt="Author Thumb" width="60" width="60" height="60" /><?php } ? <?php if ( get_post_meta($post->ID, ‘guest_author’, true) ) { ?> <?php echo get_post_meta($post->ID, "guest_author", $single = true); ?></div> <?php } ?>
다음은 내가 사용한 CSS입니다.
.writer_bio { color: #666; background: #eee; text-transform: none !important; font-size: 13px; font-weight: normal; height: 75px; width: 600px; padding: 6px; padding-bottom: 6px; padding-left: 0; margin-bottom: 10px; } .writer_bio img { padding: 0 !important; float: left !important; margin-left: 4px !important; margin-top: 3px !important; border: 2px #ccc solid !important; height: 60px; }
autho_thumb 클래스를 사용하면 더 많은 스타일을 지정할 수 있습니다. 이 작업이 완료되면 필드에 autho_thumb 및 guest_author를 추가하고 정보를 입력하기만 하면 됩니다. 사용자 정의 필드에 링크와 같은 HTML을 추가할 수도 있습니다.
따라서 게스트 작성자 정보에 대한 두 개의 사용자 정의 필드가 있습니다. 이것은 많은 단계처럼 보일 수 있습니다. 한 번 해봤다면 믿으세요. 다음에 하고 싶을 때 이미지와 설명을 추가하기만 하면 됩니다.
프론트 페이지에 게시물 이미지를 표시하기 위한 더 나은 사용자 정의 필드
이 메서드는 전면에 게시물에 대한 엄지손가락을 표시하는 데 사용됩니다. 조금 더 나아가 프런트 엔드 사용자를 위해 쉽게 만들고 싶었습니다. 또한 Jean의 방법으로 모든 이미지는 동일한 alt="post-image"를 가지며 검색 엔진에 적합하지 않을 수 있습니다. 또한 매번 이미지의 전체 URL을 포함해야 합니다. 먼저 코드는 다음과 같습니다.
<?php $postimageurl = get_post_meta($post->ID, ‘post-img’, true); // variable for image $image_alt = get_post_meta($post->ID, ‘post-img’, true);// variable for description // check if the the custom field is called if ($postimageurl) { ?> <a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php echo $postimageurl; ?>" class= quot;post-img" alt="<?php echo $image_alt; ?>"; width="500" height="300" /></a> <?php } else { ?>
코드를 설명하기 전에 기본 thumb에 대해 else 문을 추가하지 않았음을 주목하십시오. 이미지가 사용자 정의 필드에 할당된 경우 기본 이미지를 갖고 싶다면 Jean의 게시물을 참조하십시오.
먼저 $postimageurl과 $image_alt라는 두 개의 변수가 있습니다. 첫 번째는 이미지 위치를 가져오는 것이고 두 번째는 이미지 이름을 추가하는 것입니다. 그런 다음 다시 if 문을 설정하여 사용자 정의 필드가 호출되는지 확인합니다.
<?php echo get_option(‘siteurl’).‘/wp-content/uploads/thumb/’?>
다른 것은 이미지 위치를 가져오는 위의 코드입니다. 내 WordPress 업로드 디렉토리에 thumb이라는 폴더를 만들었습니다. 따라서 폴더에 이미지를 업로드한 후에는 이미지 이름을 입력할 때마다 전체 URL을 입력하는 대신에.
이미지를 도메인 루트에 저장하는 것과 같은 다른 디렉토리를 원하면 <?php echo get_option('siteurl').'/wp-content/uploads/thumb/ ?><?php echo $postimageurl; ?>
<?php echo get_option('siteurl').'/wp-content/uploads/thumb/ ?><?php echo $postimageurl; ?>
http://yourwebsite.com/images/<?php echo $postimageurl; ?>
http://yourwebsite.com/images/<?php echo $postimageurl; ?>
.
따라서 코드가 약간 수정되어 모든 게시물 이미지가 다른 대체(제목)를 가지며 전체 URL이 아닌 이미지 확장명을 입력합니다.
원하는 대로 WordPress 탐색 정렬
가장 먼저 알아야 할 것은 일반적으로 header.php에 있는 ks29so_list_pages 태그를 사용하는 워드프레스 목록 페이지입니다. 그러나 모든 페이지를 나열하고 싶지 않을 수도 있습니다. 일부 페이지가 표시되지 않도록 숨기려면 다음과 같이 하십시오.
<?php ks29so_list_pages(‘include=7,13′ ); ?> //or <?php ks29so_list_pages(‘exclude=5,9′);? >
제외 또는 포함은 거의 동일한 방식으로 작동합니다. 제외는 WordPress 페이지 목록에서 특정 페이지를 생략하고 지정한 페이지 ID만 표시합니다. 그러나 대부분의 웹 디자인 블로그 또는 기타 블로그는 태그 또는 카테고리를 탐색으로 사용하는 것을 좋아합니다. 이 경우 ks29so_list 태그를 제거하고 탐색 코드를 사용자 정의할 수 있습니다. 또는 태그를 사용하여 이를 수행할 수도 있습니다. 이 방법으로 코딩하면 CSS 클래스를 할당하여 탐색의 각 요소에 스타일을 지정할 수 있다는 이점이 있습니다.
최근에 사용하던 템플릿에서 제외할 페이지 ID를 찾아야 했고 약 10분 후에 마침내 WordPress '페이지'의 페이지 ID를 찾는 쉬운 방법을 찾았습니다.
이전 버전의 WordPress에서는 이것이 더 쉬웠다고 생각하지만 여기 지금 할 수 있는 방법이 있습니다.
- WordPress 관리자 패널로 이동한 다음 페이지로 이동합니다.
- 그런 다음 ID를 알고 싶은 페이지 위로 마우스를 가져갑니다.
- 브라우저 하단의 상태 표시줄에 ID가 표시됩니다(아래 참조).
전체 주소가 표시되지 않으면 다른 방법을 시도해 보십시오(아래 참조).
- WordPress 관리자 패널로 이동한 다음 페이지로 이동합니다.
- 그러면 주소 표시줄에 ID가 표시됩니다. 등호 뒤의 숫자가 됩니다.
- 아이디를 알고 싶은 페이지를 클릭하세요.
아카이브 주제 표시
대부분의 WordPress 테마는 archive.php 페이지와 함께 제공됩니다. 그러나 아카이브 페이지가 별로 도움이 되지 않고 사용자에게 탐색 중인 주제나 카테고리를 알려주지 않는 웹사이트를 많이 보았습니다. 혼란을 피하기 위해 archive.php에 다음 코드를 추가할 수 있습니다.
<?php /* If this is a category archive */ if (is_category()) { ?> <h3 class="pagetitle">Current Browsing Topic: ‘<?php single_cat_title(); ?>’</h3> <?php /* If this is a tag archive */ } elseif( is_tag() ) { ?> <h3 class="pagetitle">Posts Tagged ‘<?php single_tag_title(); ?>’</h3>