Käytä nykyistä käyttäjätunnusta Pods for WordPressin kanssa
Pods Framework for WordPress, erityinen apuohjelma, joka on ollut käytössä pitkään, tarjoaa paljon toimintoja, jotka voivat helpottaa työskentelyä edistyneiden sisältötyyppien, mukautettujen asetusten ja niin edelleen kanssa.
Mainitsen tämän, koska Pods on suosittu apuohjelma ja saatavilla on joitain ominaisuuksia, jotka tarjoavat mukavia toimintoja.
Lyhytkoodeja käyttämällä on mahdollista suorittaa tehokkaita tietokantakyselyitä tietojen hakemiseksi lomakkeiden täyttämiseksi dynaamisesti.
Yksi käyttötapaus, jonka näen näkyvän muutamissa tuloksissa, on lyhytkoodin täyttäminen nykyisen käyttäjän tunnuksella. Siitä on foorumiviesti täällä ja keskustelu aiheesta myös Stack Overflow -sivustolla.
Mutta jos etsit tapaa suodattaa sisältöä tehdäksesi tämän ilman, että muutat joitain olemassa olevia lyhytkoodeja, on olemassa toinen tapa tehdä se.
Käytä nykyistä käyttäjätunnusta podien kanssa
Oletetaan, että haluat täyttää lomakkeen nykyisellä käyttäjätunnuksella ilman lyhytkoodia; voit tehdä sen käyttämällä merkkiä ja suodatinta.
Oletetaan esimerkiksi, että lyhytkoodisi näyttää tältä :
[pods-form name="user" fields="first_name, last_name" where="current_user_id = user_id" label="Update"]
Voit suodattaa tämän, toisin kuin käyttämällä lyhytkoodia, seuraavasti :
<?php
add_filter('the_content', __NAMESPACE__. 'filter_pods_by_current_user');
/**
* Replaces the current_user_id = user_id with the current user ID in the
* incoming content (which includes the Pods shortcode).
*
* @param string $content the content of the shortcode.
* @return string the result of the parsed shortcode.
*/
function filter_pods_by_current_user($content)
{
$user = wp_get_current_user();
return str_ireplace(
'current_user_id = user_id',
"id='". $user->ID. "'",
$content
);
}
Tämä etsii merkkijonosta tietyn tunnuksen, korvaa sen ja palauttaa sen sitten Pods-ystävällisellä shortcode-attribuutilla osoitteeseen, ennen kuin lyhytkoodi on käsitelty.
Sitten Pods suorittaa kyselyn siten, että se näyttää suunnilleen tältä (olettaen, että nykyinen käyttäjätunnus on 100):
[pods-form name="user" fields="first_name, last_name" where="id = 100" label="Update"]
Yksi asia, jonka haluan tehdä selväksi, on se, että en välttämättä suosittele tätä lyhytkoodinkäsittelyn sijaan.
Käytä mieluummin sitä, mikä parhaiten sopii tilanteeseen. Jos se on lyhytkoodeja, katso johdannossa linkitetty koodi; Muuten, ehkä yllä oleva suodatin toimii hyvin.
