2016-12-15 2 views
0

다른 개발자가 WordPress의 function.php 파일에 코드를 삽입하지 않고이 플러그인에 문제가 발생했습니다. 나는 if (!is_admin()) { 라인을 대시 보드 컨트롤로 몇 가지 문제를 해결했지만 지금은 Jetpack을 활성화하기 위해 wordpress.com에 연결하려고 할 때 내 사이트 본문에이 오류 메시지가 표시된 내 사이트의 첫 페이지로 연결됩니다.WordPress의 functions.php 확장 기능의 add_action ('init')이 Jetpack 활성화를 위반 한 것 같습니다.

오류 404 찾고있는 페이지가 더 이상 존재하지 않습니다. 아마 당신은 사이트의 홈페이지로 돌아가서 찾고있는 것을 찾을 수 있는지 볼 수 있습니다. 또는 아래 검색 양식을 사용하여 찾을 수 있습니다.

이 플러그인을 비활성화하면 Jetpack 정품 인증이 작동하지만 문제의 원인을 파악하고 싶습니다. 확실히 그것은 코드의 add_action('init', 'check_user_logged_in'); 부분과 관련이 있지만 대체 할 내용을 알지 못합니다. init 대신 wp_head를 사용하려고했지만 내 페이지의 다른 플러그인에서 스타일이 깨졌습니다. 어떤 아이디어? 아래 코드는 다음과 같습니다. CSS의 미리보기가 워드 프레스 init 단계의 화면 (초기 로딩 단계 중 하나)에 인쇄로는 definitly 어떤 워드 프레스 웹 사이트를 파괴로

<?php 

/* Your code goes below here. */ 

ob_start(); 

function check_user_logged_in(){ 
    if (!is_admin()) { 
    if (is_user_logged_in()) { ?> 
     <style type="text/css" media="screen"> 
     #theme-my-login-2 .widget-wrap .widget-title { display: block !important; } 
     </style> 
    <?php 
    } else { ?> 
     <style type="text/css" media="screen"> 
     table.sidebar_result{margin-top:-10px;} 
     </style> 
<?php 
    } 
    } 
} 

add_action('init', 'check_user_logged_in'); 

/* Add Read More Link to Excerpts */ 
add_filter('excerpt_more', 'get_read_more_link'); 
add_filter('the_content_more_link', 'get_read_more_link'); 

function get_read_more_link() { 
    return '...&nbsp;<a href="' . get_permalink() . '">[Read&nbsp;More]</a>'; 
} 

/* Your code goes above here. */ 
?> 

답변

0

기능 check_user_logged_in()을 염두에 어리 석음의 많은 기록됩니다.

이렇게하면 template_redirect 후크의 모든 리디렉션이 파괴되고보기가 삭제됩니다. 나는 아마도 그러한 플러그인의 저자를 신뢰하지 않을 것이다.

wp_head 동작으로 이것을 추가하는 방법은 아주 옳았습니다 (wp_footer 동작을 사용할 수도 있음). 스타일은 wp_register_style()wp_enqueue_style()으로 대기열에 포함되어야하므로 여전히 나쁜 접근 방식입니다.

CSS 코드가 테마를 파괴하는 경우 add_action 행을 삭제하거나 필요에 맞게 CSS를 변경하십시오.