私は2つのカスタム投稿タイプ(作成者とパートナー)を持っています。私は彼らのアーカイブページをメインナビゲーションに表示し、archive-authors.phpとarchive-partner.phpを使ってそれぞれの中の投稿の表示を少し調整します。
さて、私のクライアントはアーカイブの投稿リストの前にテキストを表示したいと思います。これまでのところ、私はそれを行うために以下の方法を考えることができます:
WP_Query()
ループをハードコードします。WP_Query()
付きのカスタムループを作成して、各CPTのCPTアーカイブを作成し、静的で編集可能なページで使用できる "Author Archive"および "Partner Archive"テンプレートを設定します。ただし、これらの解決策はすべて、次の1つ以上の理由から最適とは言えません。
私はWordPressに優しく、抽象化された、そしてクライアントにとってアップデートしやすいソリューションを探しています。
これを達成するための最も簡単な(唯一ではないが)方法の1つは、WPダッシュボードにカスタムオプションパネルを作成することです。これにより、クライアントはテンプレート全体で使用できる情報を作成および更新できます。技術的な知識が不要なファイル.
以下を直接functions.phpファイルに貼り付けるか、config-menu.php(テーマディレクトリ内)に保存してからfunctions.phpファイルに含めることができます。コードは
// create config menu in dashboard
add_action('admin_menu', 'config_menu');
function config_menu() {
//create a menu in the dashboard
add_menu_page('Website Custom Settings',
'Configure Site',
'administrator',
__FILE__,
'custom_settings_page',
''.get_bloginfo('template_directory').'/images/your_icon.png', 4);
}
//register settings
add_action( 'admin_init', 'register_settings' );
function register_settings() {
register_setting( 'my-settings-group', 'partners');
register_setting( 'my-settings-group', 'authors');
}
function my_settings_page() {
?>
<div class="wrap">
<form method="post" action="options.php">
<?php settings_fields('my-settings-group'); ?>
Enter your Partner description here <br/>
<textarea name="partners"><?php echo get_option('partners');?></textarea>
<br />
Enter your Author description here <br/>
<textarea name="authors"><?php echo get_option('authors');?></textarea>
<input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
</form>
</div>
<?php } ?>
その後、各投稿タイプのアーカイブテンプレートファイルで、次の操作を実行できます。
<?php echo wpautop(get_option('partners');?>
and
<?php echo wpautop(get_option('authorss');?>
これにより、クライアントのダッシュボード領域に作成したtextareaフィールドにそれぞれの値(入力されたテキスト)が呼び出されます。
注:上記のコード例は非常に基本的なもので、基本的な例を示すために省略してあります。 CSSのスタイルは提供されていません。しかし、これで仕事は終わります。
これを行うプラグイン CPT Descriptions があります。
V0.1以降、このプラグインはかなりバグがあります(編集者は説明を保存できません)が、ほとんどのものは GitHubリポジトリ版のプラグイン の面倒を見ています。 1つの既存のfork およびpull要求の中の他のいくつかの変更/改良。うまくいけば、それらはWordPressレポ版のプラグインに統合されるでしょうが、今のところそれらはGitHubで稼働してテストされています。
プラグインを使用するには、単にそれをインストールし、あなたが望む各投稿タイプの "Description"フィールドに記入して、それからアーカイブページに説明を出力してください:
the_post_type_description();
または特定の投稿タイプの説明を取得します。
the_post_type_description('my_post_type');
または次のようにして変数に保存します。
$description = get_post_type_description();