Typecho のスキン関数 function.php
申し訳ありませんが、最近とても忙しくてコンテンツを更新する時間がありません。
前回の記事「Typechoテーマの制作ファイル構造」では、Typechoテーマを作成するために必要なテンプレートファイルを紹介しました。「skin function」という特別なファイルがあり、ファイル名はfunctions.phpです。この記事では、このファイルの役割について詳しく説明します。
ファイルはいつロードされますか?
「Typecho の Widget_Archive 分析」で紹介したように、Typecho によって要求されたほとんどのルートは、1357 行目あたりのexecute() 関数に次のように記述されています。コード:
/** 初始化皮肤函数 */ $functionsFile = $this->_themeDir . 'functions.php'; if (!$this->_invokeFromOutside && file_exists($functionsFile)) { require_once $functionsFile; if (function_exists('themeInit')) { themeInit($this); } }
Widget_Archive がターゲット テンプレート ファイルをロードする前に、まずテンプレート ディレクトリに function.php ファイルをロードし、その中で $this をパラメータとして使用して themeInit 関数を実行しようとすることがわかります。
ファイルで定義できる特別な関数
上記のthemeInit関数は、すべてのテンプレートファイルが実行される前に実行され、テンプレートコードで実行される最初の関数と見なされます。同様の特別な関数には次のようなものがあります:
* themeInit
* themeConfig
* themeConfigHandle
* themeFields
* threadedComments
* singlePing
*treeViewCategories
themeInit function
themeInit 関数は、すべてのテンプレート ファイルの前にロードされ、通常は Typecho を設定するために使用されます。デフォルトの pageSize を 20 に変更するなどの動作。
function themeInit($archive) { if ($archive->is('index')) { $archive->parameter->pageSize = 20; // 自定义条数 }}
その機能は、ホームページの各ページに表示される記事の数をデフォルト値から 20 に変更することです。
themeConfig 関数
この関数は、バックグラウンドでテンプレートの構成オプションを生成するために使用されます。たとえば、次の関数は図に示すような構成ページを生成します。
上記のコードの効果:
themeConfigHandle 関数
使い方はまだわかりませんが、追加することを歓迎します
themeFields 関数
それは、themeConfig と同じように機能します。これを注意深く勉強しませんでした。
threadedComments 関数
この関数はコメント出力を設定するために使用されます。例:
function themeConfig($form) { $logoUrl = new Typecho_Widget_Helper_Form_Element_Text('logoUrl', NULL, NULL, _t('站点LOGO地址'), _t('在这里填入一个图片URL地址, 以在网站标题前加上一个LOGO')); $form->addInput($logoUrl); $sidebarBlock = new Typecho_Widget_Helper_Form_Element_Checkbox('sidebarBlock', array('ShowRecentPosts' => _t('显示最新文章'), 'ShowRecentComments' => _t('显示最近回复'), 'ShowCategory' => _t('显示分类'), 'ShowArchive' => _t('显示归档'), 'ShowOther' => _t('显示其它杂项')), array('ShowRecentPosts', 'ShowRecentComments', 'ShowCategory', 'ShowArchive', 'ShowOther'), _t('侧边栏显示')); $form->addInput($sidebarBlock->multiMode());}
listComments() ?> は次のように出力されます:
function threadedComments($comments, $options) { echo '自定义内容1'; $comments->content(); echo '自定义内容2';}
singlePing function
//これが何をするのかわかりません
ViewCategories 関数
この関数は、分類の出力スタイルを変更するために使用されます。詳しい使い方については調べて追記していきます。
このファイルではカスタム関数を定義することもできます
さらに、functions.php がテンプレートの先頭にロードされるため、ここで独自の関数を定義してテンプレートで使用することができます。
たとえば、最も一般的に使用されるメニューの強調表示関数では、functions.php で現在のメニューを強調表示するかどうかを決定する関数を定義できます:
<ol><li>自定义内容1 评论内容 自定义内容2</li><li>自定义内容1 评论内容 自定义内容2</li>...</ol>
次に、テンプレート ファイルで次のように使用できます:
function active_current_menu($archive,$expected,$active_class='active'){ if($expected == 'index' && $archive.is('index')){ echo $active_class; }else if($archive.is('archive') && $archive.getArchiveSlug() == $expected){ echo $active_class; }else{ echo ''; }}
ただし注意してください、functions.php は Widget_Archive の実行関数に必要なので、functions.php で定義された関数は $this を直接使用できません。つまり、Widget_Archive の内部変数に直接アクセスできません。 Widget_Archive のコンテンツを使用する必要がある場合は、上記の例のように関数パラメーターの形式でそれを渡すことができます。
- 記事の転載元: www.typechodev.com

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

この記事では、Laravel Webフレームワークの通知システムを検討します。 Laravelの通知システムを使用すると、さまざまなチャネルでユーザーに通知を送信できます。今日は、通知ovを送信する方法について説明します

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします
