web-dev-qa-db-ja.com

定期的に(自動的に)静的なMarkdownコンテンツをWPページに読み込む最も簡単な方法は何ですか?

私のテーマのREADME.markdownを私のサイトのページに同期させたいのですが、そのテキストを一度だけ更新すればよいようにするには、loveにします。私が自分のコードをBitBucketにコミットしたとき。私のテーマは定期的にhg pull -uをやっているので、コードは新鮮なままで、READMEはソースを変更するたびに更新されますが、READMEを含むWordPressページは手動で更新されます。

(私はMD - > HTMLダンスをするためにMark Jaquithの Markdown on Save を使っています。)

何かご意見は?

2
ZaMoose

私はWP-Cron機能を使ってそれを達成しました。

add_action('wp', 'wpse_26170_activation');

function wpse_26170_activation() {
    if ( !wp_next_scheduled( 'wpse_26170_update_readme_page' ) ) {
        wp_schedule_event( current_time( 'timestamp' ), 'daily', 'wpse_26170_update_readme_page');
    }
}

function wpse_26170_update_readme_page() {
    $page = array(
        'ID'           => 767,
        'post_content' => Markdown( file_get_contents( 'path/to/readme.markdown' ) )
    );

    if (
        // Filters return true if they existed before you removed them
        remove_filter( 'content_filtered_save_pre', 'wp_filter_post_kses' ) &&
        remove_filter( 'content_save_pre', 'wp_filter_post_kses' )
    ) {
        $page['post_content'] = wp_kses_post( $page['post_content'] );
    }

    wp_update_post($page);
}

これで、このcronジョブは毎日実行され、readmeでページが更新されます。ページIDとMarkdownファイルへのパスで 'ID'を変更する必要があります。

Cronを実行するのに問題がある場合は、Nettuts から次の投稿を読んでください。http://wp.tutsplus.com/articles/insights-into-wp-cron-an-introduction-to-ワードプレスでのスケジューリングタスク/

また、この関数はMarkdownクラスを使用しているため、Markdown On Saveプラグインも必要です。

実際にはwpse_26170_update_readme_pageを実行した後にhg pull -u関数を呼び出すことができます。

2
nvartolomei

マークダウンファイルを解析して、ページ内の内容を何らかの方法で、たとえばショートコードで表示することができます。ファイルを更新すると、自動的に更新されます。原因は、マークダウンファイルを解析して自動的にHTMLを提供することです。

0
Tareq