Wordpress settings API - dodavanje class-a u kojem ne mogu direktno pristupiti?

Ovako, radim premium wordpress temu i pritom za theme options koristim NHP theme options framework (github link). Ako ne znate kako funkcioniraju theme options za wordpress, proces je slijedeći - za svaku pojedinačnu formu se deklarira array koji sadrži id, tip forme, naziv, opis, defaultnu vrijednost i eventualno neke dodatne stvari. U praksi to izgleda ovako:

array(
'id' => 'neki_text-id',
'type' => 'text', //tip forme
'title' => __('Neki Text', 'nhp-opts'), //ime forme
'desc' => __('Tralala', 'nhp-opts'), //dodatan opis
'std' => 'Blabla' //defaultna vrijednost
)

Ovdje to možete vidjeti od linije 155 na dalje. Uglavnom, php kod prepozna tip forme i provede cijeli array kroz foreach petlju (u ovom slučaju je to field-text) i na kraju generira HTML kod za formu. Konkretno to izgleda ovako:

<tr valign="top">
<th scope="row">Neki Text</th>
<td>
<input type="text" id="neki_text-id" name="themename[neki_text-id]" value="Blabla" class="small-text"/>
<span class="description">Tralala</span>
</td>
</tr>

E sad, cijelo sučelje uključujući dio

je dio Wordpress Settings API-ja i ja ne mogu direktno na njega utjecati, ali trebao bih manipulirati njime putem jQueryja kako bi napravio cijele opcije interaktivnijima i manje zbunjujućima za korisnike. Uglavnom, najbolja stvar je staviti class=“neki_text-id” u putem PHP-a ili jQuery-a, ali ne znam kako.
Znači, pitanje glasi: kako promjeniti kod da se ‘id’ iz arraya deklarira kao class u kojeg ne mogu direktno doseći?

Hvala :slight_smile:
BTW: Pitao sam na githubu, ali nitko ne odgovara…

Prva misao: ako ga ne možeš direktno doseći, odi od $("#neki_text-id").parents(“tr”).eq(0)

I pazi, parents() nije isto što i parent()

Nije ono što si pitao (PHP rješenje), ali će možda pomoći.

Da, ali trebao bi tako za svaki budući form. A preko jQueryja, nešto tipa ovo?

jQuery('.form-table tr').addClass({
//saznaj id prvog elementa koji se unutra nalazi i ima deklariran id
});

Sad ne znam kako izvesti ovaj komentar unutra…

Više ne stignem editirati, ali evo, kako dodati klasu

u koja se zove kao ID elementa koji je nested unutar tog i ima poznati class…

Vjerojatno mozes prije outputa promijeniti to na neki nacin. Daj vise kôda.

I da, daj isjecak kôda koji sad imas i koji zelis dobiti.

Znači ima hrpetinu ovih

-ova i za svaki trebam izvaditi id nested elementa koji ima klasu ‘poberiklasu’ i taj id staviti kao klasu njegovog parent elementa. Use image file (instead of text) to serve as a logo.

U konkretno ovom gore slučaju

bi trebao dobiti klasu ‘header_logo_imgcheck’…

BTW: mislim da mi je jednostavnije mjenjati jQuery nego PHP, za PHP bi trebao previše toga mjenjati i onda kad updateam framework opet imam posla. Ovo je full jednostavnije…

Probaj s ovim

[HTML]jQuery( ‘input[type=“checkbox”]’ ).each( function() {
var klasa = jQuery( this ).attr( ‘id’ );
jQuery( this ).closest(‘tr’).attr( ‘class’, klasa );
});[/HTML]

E funkcionira :slight_smile: Sad ću se malo igrati s tim pa javim ako zapne negdje…
EDIT: evo, sve sam sredio, radi super!

Super, drago mi je :slight_smile:


Copyright © 2022 WM Forum - AboutContact