私は長い間このようなことをしたいと思っていました。私はURLを持っています http://studionumberone.com/portfolio/obey-clothing/ はちょうど画像のjqueryギャラリーを示しています、私はそれからstudionumberone.com/portfolio/obey-clothing /?view = allを持っています。ギャラリー内のすべての画像が上下に表示されます。
そのURLをstudionumberone.com/portfolio/obey-clothing/allにします。
カスタム投稿タイプは基本的なことをします。
<?php get_header();
$view = $_GET['view'];
?>
<?php if ($view == "all") { ?>
show all images
<?php } else { ?>
show gallery shortcode
<?php } ?>
<?php get_footer(); ?>
私は試してみました(運が悪い):
add_action( 'init', 'ss_permalinks' );
function ss_permalinks() {
add_rewrite_rule(
'([^/]+)/all/?',
'index.php?view=all&service=$matches[1]',
'top'
);
}
add_filter( 'query_vars', 'ss_query_vars' );
function ss_query_vars( $query_vars ) {
$query_vars[] = 'view';
return $query_vars;
}
こんにちは @westondeboer:
あなたの投稿タイプが'portfolio'
であると言っているので、これは私のWordPress v3.0.4テストサイトで'portfolio'
カスタム投稿タイプが定義されているもので動作するものです。それはあなたが持っているすべてのコードを置き換えます:
add_action('init','yoursite_init');
function yoursite_init() {
global
$wp,$wp_rewrite;
$wp->add_query_var('view');
$wp_rewrite->add_rule('portfolio/([^/]+)/all',
'index.php?view=all&post_type=portfolio&name=$matches[1]', 'top');
// Once you get working, remove this next line
$wp_rewrite->flush_rules(false);
}
また、パーマリンクを管理コンソールに保存することでできる書き換えルールをフラッシュする必要があります。これであなたの問題が解決するかどうかを教えてください。解決しない場合は明確にしてください。
また、 `$ _GET ['view'] 'を使うのとは違った方法でクエリパラメータをキャプチャする必要があります。どちらでも動作します。
// Option 1
$view = {$GLOBALS['wp']->query_vars['view'];
// Option 2
global $wp;
$view = $wp->query_vars['view'];