Come creare una pagina dinamica in WordPress?
Voglio creare qualcosa di simile a quello che fa Buddypress con le pagine dei membri. Ad esempio: http://www.example.com/members/foo
http://www.example.com/members/bar
etc.
Ho provato a esaminare il codice di Buddypress e vedo che non utilizzano custom post type o una tassonomia personalizzata. Inoltre, non sembra che stiano usando add_rewrite_rule().
Vorrei avere qualcosa di simile, dove il mio plugin prenderà 'foo' dall'URL e genererà contenuti in base a quello. Qual è il modo migliore per farlo?
AGGIORNAMENTO:
Ho seguito le istruzioni in questa discussione, che è esattamente ciò che volevo: Come creare un profilo utente front-end con un permalink amichevole
Ecco il codice:
add_filter( 'query_vars', 'analytics_rewrite_add_var' );
function analytics_rewrite_add_var( $vars )
{
$vars[] = 'analytic';
return $vars;
}
function add_analytic_rewrite_rule(){
add_rewrite_tag( '%analytic%', '([^&]+)' );
add_rewrite_rule(
'^analytics/([^/]*)/?',
'index.php?analytic=$matches[1]',
'top'
);
}
add_action('init', 'add_analytic_rewrite_rule');
add_action( 'template_redirect', 'analytics_rewrite_catch' );
function analytics_rewrite_catch()
{
global $wp_query;
if ( array_key_exists( 'analytic', $wp_query->query_vars ) ) {
include ( get_stylesheet_directory() . '/html/analytics.php');
exit;
}
}
Tuttavia, /analytics/foo/ mi restituisce ancora un errore 404. Cosa sto sbagliando?

Ecco la risposta. E per riferimento futuro, Deepak, devi effettivamente pubblicare la soluzione come risposta. Invece, hai pubblicato la tua risposta all'interno della tua domanda e poi hai aggiunto un commento al riguardo. Per favore, non farlo.
function analytics_rewrite_add_var( $vars ) {
$vars[] = 'analytic';
return $vars;
}
add_filter( 'query_vars', 'analytics_rewrite_add_var' );
function add_analytic_rewrite_rule() {
add_rewrite_tag( '%analytic%', '([^&]+)' );
add_rewrite_rule(
'^analytics/([^/]*)/?',
'index.php?analytic=$matches[1]',
'top'
);
}
add_action('init', 'add_analytic_rewrite_rule');
function analytics_rewrite_catch() {
global $wp_query;
if ( array_key_exists( 'analytic', $wp_query->query_vars ) ) {
include ( get_stylesheet_directory() . '/html/analytics.php');
exit;
}
}
add_action( 'template_redirect', 'analytics_rewrite_catch' );

Grazie ragazzo. Forse non sono stato chiaro con la mia domanda. Avevo esattamente questo stesso problema: Come creare un profilo utente frontend con un permalink amichevole
L'ho risolto con il codice che ho incollato nella mia domanda sopra. Mi ero dimenticato di eseguire il flush delle regole, cosa che MadLem su IRC mi ha chiesto di fare e ora funziona.
Scusa se non sono stato chiaro, e grazie per aver dedicato del tempo a rispondere :)
