J'essaie de modifier un extrait de code trouvé ici pour un site web wordpress: http://support.membermouse.com/support/discussions/topics/9000007386
Voici le code:
<?php
add_filter( 'the_content', 'restrict_mm_access' );
function restrict_mm_access($content) {
if(is_super_admin()){
return $content;
}
$moreLink = '<span id="more-' . get_the_ID() . '"></span>';
$contentData = explode( $moreLink, $content );
if ( count( $contentData ) > 1 ) {
$return = $contentData[0];
$return .= "[MM_Member_Decision isMember='false']";
$return .= '<div id="access-restricted-box">
<h3>You have to be a member to access this content.</h3>
<h4>Already a Member?</h4>
<a href="/login/?redirect_to=' . get_the_permalink() . '" class="button">Log In for Access</a>
<h4>Not a Member Yet?</h4>
<a href="/join/" class="button">Register Now</a>
</div>';
$return .= "[/MM_Member_Decision]";
$return .= "[MM_Member_Decision membershipId='2']";
$return .= $contentData[1];
$return .= "[/MM_Member_Decision]";
return $return;
} else {
return $content;
}
}
?>
J'utilise le plugin d'adhésion Member Mouse pour protéger les publications personnalisées; ils ne sont donc affichés que pour les membres payés. Nos billets de blog sont disponibles au public.
L'extrait ci-dessus fonctionne parfaitement pour protéger les publications de blogues - ce que je ne veux pas. Je souhaite que deux types de publication personnalisés soient protégés (Outils et Articles) et que les publications de blog soient affichées à tout le monde.
Je reconnais que les types de publication personnalisés ne sont pas des publications - il y a donc un problème. Je ne sais tout simplement pas comment modifier l'extrait pour qu'il fonctionne.
Des idées?
Chaque fois que the_content
est appelé, il existe un objet global WP_Post
. Vous pouvez donc examiner cela pour trouver son type de message:
if ( ! in_array( get_post()->post_type, [ 'tool', 'article' ] ) )
return $content;