궁금해서 그렇습니다만 예를 들어서 어떤 글을 추가하면 글 중간에 회원 로그인 기능을 넣는다던지 해서
글을 읽다가 회원이 되어야지만 글 전체를 읽을 수 있는 기능은 없을까요?
안녕하세요~^^
말씀하신 글은 어떤 글을 말씀하시는 건지요?
워드프레스의 포스트인지 KBoard 플러그인의 게시글인지 알려주시겠어요?
말씀하신 글 중간은 게시글 목록 페이지인지 본문 페이지인지 알려주시겠어요?
고맙습니다.
워드프레스 포스트입니다. 포스트 본문 중간 삽입을 원합니다
비로그인 시 워드프레스 포스트를 일부만 표시하고 회원가입 폼을 표시하시려면
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보시겠어요?
add_filter('the_content', 'my_the_content_filter', 10, 1);
function my_the_content_filter($content){
if(is_singular(array('post'))){
if(!is_user_logged_in()){
$content = mb_strimwidth(strip_tags($content), 0, 100, '...', 'utf-8');
ob_start();
?>
<h4>계속 보시려면 로그인하세요.</h4>
<!-- 회원가입 주소 또는 회원가입 숏코드 -->
<?php
$content .= ob_get_clean();
}
}
return $content;
}
위의 코드 중에서 아래의 코드는 워드프레스 포스트의 본문 내용을 자르는 코드입니다.
자르려는 크기를 적절히 수정하신 후에 적용해보시겠어요?
mb_strimwidth(strip_tags($content), 0, 100, '...', 'utf-8');
<!-- 회원가입 주소 또는 회원가입 숏코드 --> 부분에는 회원가입 주소나
사용 중이신 회원가입 플러그인이 있다면 해당 숏코드를 입력해보시겠어요?
코스모스팜 회원관리 플러그인을 사용 중이시라면
아래의 숏코드를 추가해주시면 됩니다.
[wpmem_form register]
고맙습니다.
특정 포스트에만 적용하시려면
기존의 코드 대신 아래의 코드로 교체해보시겠어요?
add_filter('the_content', 'my_the_content_filter', 10, 1);
function my_the_content_filter($content){
$post_ids = array('1', '2', '3');
if(is_singular(array('post')) && in_array(get_the_ID(), $post_ids)){
if(!is_user_logged_in()){
$content = mb_strimwidth(strip_tags($content), 0, 100, '...', 'utf-8');
ob_start();
?>
<h4>계속 보시려면 로그인하세요.</h4>
<!-- 회원가입 주소 또는 회원가입 숏코드 -->
<?php
$content .= ob_get_clean();
}
}
return $content;
}
위의 코드에서 $post_ids = array('1', '2', '3') 부분에는 실제 post id로 적용해주시면 됩니다.
예를 들어서 post id가 123인 post에만 적용하시려면 $post_ids = array('123') 이런 식으로 적용해주시면 됩니다.
페이지(포스트) ID를 찾는 방법은 아래의 링크를 참고해보시겠어요?
get_the_ID 함수는 아래의 링크를 참고해보세요.
https://developer.wordpress.org/reference/functions/get_the_id/
고맙습니다.