我目前正在使用WordPress API为WordPress构建React / Redux主题。我需要将页面模板添加到主题。我可以通过创建几乎空的文件来做到这一点,例如:
package com.arnchr.sounddemo;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MediaPlayer player = MediaPlayer.create(this, R.raw.laugh);
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
player.prepare();
} catch (IOException e) {
Log.e(TAG, "error loading resources for player");
e.printStackTrace();
}
player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer player) {
player.start();
}
}
但是我想以编程方式创建这些“页面模板”。
我需要的功能是能够在WordPress CMS中选择一个“页面模板”,并将其放在API上。如果按上述方式创建“页面模板”,此功能将按预期运行。
这可能吗?
答案 0 :(得分:0)
这可以通过使用theme_page_templates
过滤器来实现。
CONST CUSTOM_PAGE_TEMPLATES = array(
array('slug' => 'home', 'label' => 'Home'),
array('slug' => 'content-page', 'label' => 'Content Page'),
array('slug' => 'ordering', 'label' => 'Ordering'),
array('slug' => 'reviews', 'label' => 'Reviews')
);
/**
* Add file-less page templates to the page template dropdown
*/
add_filter('theme_page_templates', function($page_templates, $wp_theme, $post) {
foreach(CUSTOM_PAGE_TEMPLATES as $template) {
// Append if it doesn't already exists
if (!isset($page_templates[$template['slug']])) {
$page_templates[$template['slug']] = $template['label'];
}
}
return $page_templates;
}, PHP_INT_MAX, 3);