Hallo,

Ik wil graag bepaalde content NIET laden/tonen als element een bepaalde class heeft.

Voorbeeld:

if (has_class('my_class')){
  // doe iets
} else {
  // doe iets anders
}


Zag al wel een jquery functie (.hasClass) maar wil dit graag middels PHP oplossen.
Dus wie kan me op weg helpen?

Guido
Euh... Misschien is het makkelijker om even de toepassing van dit alles te schetsen, en dan te bepalen waar dit opgelost moet worden :s.
Nou,

Ik heb een WordPress website met een pagina waarop een lijst met events staat. In de sidebar kan ook een lijst met events staan (middels een widget). Onderaan de lijst staat paginering. Ik wil de paginering volledig uitschakelen voor de lijst in de sidebar. Dit kan via css (display:none), maar dan werkt paginering nog wel (via de paginering op de pagina). Daarom wil ik het volledig uitschakelen voor de lijst die in de sidebar staat. Dus wil / probeer ik de paginering uit te zetten voor de class die de widget heeft.

Guido
JS:


var el = document.getElementById('test');

if(el.classList.contains('class3'))
{
    alert('true');
}



Met PHP moet je voorkomen dat het element aangemaakt wordt.
Mijn gevoel zegt dat je op een verkeerde manier bezig bent. Je wilt bepaalde functionaliteit uitschakelen nadat de pagina al is gerenderd. Dat klinkt niet logisch. Ook het feit dat je dit wil doen aan de hand van een class (die doorgaans is bedoeld voor opmaak) doet mij vermoeden dat je niet juist bezig bent.

Het lijkt me dat je de functionaliteit die jij wilt uitschakelen rechtstreeks in de PHP-code dient uit te schakelen, en niet achteraf als de pagina al is gegenereerd op je beeldscherm.
Hoi Ozzie,

Het probleem waar ik tegen aan loop is dat ik dezelfde event lijst op zowel pagina als in sidebar wil kunnen tonen. Deze lijst heeft dus ook dezelfde (css) class. Ik wil de paginering van de lijst uitschakelen indien de lijst in de sidebar van mijn site geladen wordt. Dus niet afschermen middels css maar uitschakelen. Dat dacht ik te kunnen doen door te bepalen of de bovenliggende class die van de widget/sidebar is. En zo ja, dan middels een if statement de paginering niet laden.

Mogelijk dat WordPress zelf ook iets heeft om dit te kunnen bepalen.

Guido
Een class gebruik je voor opmaak. Op het moment dat je met Javascript wil kijken of iets een bepaalde class heeft, dan is de pagina blijkbaar dus al geladen. Het enige wat je dan kunt doen is de paginering verbergen en niet uitschakelen. De paginering is er dan dus nog steeds. Als iemand css uitschakelt, zal de paginering weer zichtbaar zijn.
Duidelijk. Ga paginering via css verbergen in sidebar en overwegen om dan toch 2 verschillende lijsten te bouwen: 1 voor pagina en 1 voor de sidebar.

Bedankt voor jullie reacties.

Guido
>> Duidelijk. Ga paginering via css verbergen in sidebar en overwegen om dan toch 2 verschillende lijsten te bouwen: 1 voor pagina en 1 voor de sidebar.

Nee, nog niet helemaal ... je moet de paginering niet via css verbergen. Je moet er juist voor zorgen dat deze (in de sidebar) helemaal niet geladen wordt.

Reageren